标签:
-ObjC
。启动im服务只需要设置用户的access token,调用启动接口并添加消息的监听对象。
[IMService instance].deviceID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[[IMService instance] startRechabilityNotifier];
[IMHttpAPI instance].accessToken = accessToken; [IMService instance].accessToken = accessToken; [[IMService instance] start];
[IMHttpAPI unbindDeviceToken]; [IMService instance].accessToken = @"" [[IMService instance] stop];
[[IMService instance] enterBackground];
[[IMService instance] enterForeground];
启动IM服务设置好用户id之后便可以开始发送消息,消息发送的代码需要在UI线程中调用(消息内容大小限制为4k) :
IMMessage *im = [[IMMessage alloc] init]; //设置发送方id im.sender = sender; //设置接收方id im.receiver = receiver; //消息本地id im.msgLocalID = msgLocalID; im.content = "消息内容"; [[IMService instance] sendPeerMessage:im];
属性名:String accessToken
功能:在调用start之前必须要设置用户的accessToken,token是由第三方应用服务器调用IM服务器RestAPI所得。
属性名:String deviceID
功能:设备id可以用户多点登陆的唯一性判断,可选调用
方法名: -(void) addMessageObserver:(id<IMServiceObserver>)observer
功能:设置observer,在observer中处理接受到的消息。
参数说明:
* observer 观察者
返回值:无返回值
方法名:-(void) start
功能:用户登陆成功后,连接im服务器来接受在线消息。
方法名:-(void) stop
功能:用户注销后,断开和im服务器的连接,从而终止接受在线消息。
方法名:-(void) enterForeground
功能:应用进入前台,im服务器将停止将消息推送到通知栏
方法名:-(void) enterBackground
功能:应用进入后台,im服务器会将将消息推送到通知栏
方法名: -(BOOL) sendPeerMessage:(IMMessage*)msg
功能:发送im消息,如果当前连接处于断开状态,消息会发送失败, 函数返回YES,也不能表明服务器已经接收到消息。
参数说明:
*msg 消息对象
返回值:BOOL
方法名:-(void) onConnectState:(int)state
功能:连接状态变更通知
参数说明:
*state 连接的状态 STATE_UNCONNECTED, STATE_CONNECTING, STATE_CONNECTED, STATE_CONNECTFAIL
返回值:无返回值
方法名: -(void) onLoginPoint:(LoginPoint*)lp
功能:当前登陆用户在异地登陆
参数说明:
*lp 登录点信息
返回值:无返回值
方法名:-(void) onPeerMessage:(IMMessage*)msg
功能:接受到一条im消息
参数说明:
*msg 消息对象
返回值:无返回值
方法名:-(void) onPeerMessageACK:(int)msgLocalID uid:(int64_t)uid
功能:服务器对收到消息的ack,此时这条消息才能标志为发送成功
参数说明:
*msgLocalID 消息的本地ID
*uid 消息接受者
返回值:无返回值
方法名:-(void)onPeerMessageRemoteACK:(int)msgLocalID uid:(int64_t) uid
功能:消息已经被对端接收到。
参数说明:
*msgLocalID 消息的本地ID
*uid 消息接受者
返回值:无返回值
方法名:-(void) onPeerMessageFailure:(int)msgLocalID uid:(int64_t)uid
功能:消息发出后,未收到服务器的ack,在和服务器的连接断开后,会通知消息发送失败。
参数说明:
*msgLocalID 消息的本地ID
*uid 消息接受者
返回值:无返回值
方法名:-(BOOL) bindDeviceToken:(NSString*)deviceToken success:(void (^)())success fail:(void (^)())fail
功能:设置device token后,im服务器会对用户推送离线消息
参数说明:
*deviceToken APNS的deviceToken
返回值:boolean 是否设置成功。
方法名:-(BOOL) unbindDeviceToken:(NSString*)deviceToken success:(void (^)())success fail:(void (^)())fail
功能:im服务器不会再对这台设备推送离线消息
参数说明:
*deviceToken APNS的deviceToken
*accessToken 用户当前的accessToken
返回值:boolean 是否清空成功。
//setDBPath必须要在引用PeerMessageHandler,GroupMessageHandler之前调用 //可以将当前登录的uid加入到路径中,这样不同用户登录的时候,可以保留前一个用户的聊天历史 [MessageDB setDBPath:path]; [IMService instance].peerMessageHandler = [PeerMessageHandler instance]; [IMService instance].groupMessageHandler = [GroupMessageHandler instance];
MessageViewController* msgController = [[MessageViewController alloc] init]; msgController.peerUID = peerUID; msgController.peerName = peerName; msgController.currentUID = currentUID; [self.navigationController pushViewController:msgController animated: YES];
标签:
原文地址:http://www.cnblogs.com/nuanshou/p/4401093.html