默认
发表评论 7
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK服务器如何返回信息给客户端?
我遇到一个问题,就是当我A客户端发送一个纯文本信息,经过服务器保存后,然后返回给B客户端的时候还需要增加多一个“时间”!那么这时候我在服务器中保存的时间如何和A客户端的信息一起发送给B客户端?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:[已回复] 大神!为何我的服务端身份认证回调每次都会被调用?下一篇:[已解决] MobileMSDK PC的demo不能向user_id=0发消息的问题
推荐方案
评论 7
为何要增加这个“时间”?是用在什么场景下?能否不用或者在客户端解决?

其实MobileIMSDK里是可以通过服务端增加你这个“时间”的,但不建议这样做,因为这样的话,会让服务端单纯的即时通讯通道变的复杂,而不利于上线后用户量变多时的负载优化。你先回答我上面的问题吧,如果非得要这么干,我再另回复你。
引用:JackJiang 发表于 2016-04-01 12:16
为何要增加这个“时间”?是用在什么场景下?能否不用或者在客户端解决?

其实MobileIMSDK里是可以通过 ...

我数据库需要保存时间,不能客户端传过来,一定要服务器上的。然后再将A客户端的信息拼接回刚保存的时间。就是想这么干!我需要怎么解决这个问题??具体需要怎么处理,谢谢
引用:jishitongxun 发表于 2016-04-01 13:39
我数据库需要保存时间,不能客户端传过来,一定要服务器上的。然后再将A客户端的信息拼接回刚保存的时间 ...

你的思路有点乱。

你单纯的只是想把用户发的消息在服务端的db里存一份,同时为这个消息加一个发送时间(存到数据库里),仅此而已是吗?
引用:JackJiang 发表于 2016-04-01 14:07
你的思路有点乱。

你单纯的只是想把用户发的消息在服务端的db里存一份,同时为这个消息加一个发送时间 ...

是啊,A客户端只是发送文字内容,但是时间要是在服务端生成的!!保存db后,再把消息和时间发送给B客户端。请问怎么才能解决?
引用:jishitongxun 发表于 2016-04-01 14:18
是啊,A客户端只是发送文字内容,但是时间要是在服务端生成的!!保存db后,再把消息和时间发送给B客户端 ...

服务端有专门的回调方法,可以拿到用户间发送的消息,而不需要你人工干预用户消息的发送。这个回调接口专门是用来作为服务端后台收集用户的私人聊天信息用的,虽属侵犯用户隐私,但哪个聊天app没有?

其实你涉及到的就是这个回调方法,不要把事情复杂化了:http://docs.52im.net/extend/docs ... , java.lang.String)
引用:JackJiang 发表于 2016-04-01 14:25
服务端有专门的回调方法,可以拿到用户间发送的消息,而不需要你人工干预用户消息的发送。这个回调接口专 ...

onTransBuffer_C2C_CallBack 这个方法中最后参数dataContent只是本文信息,但是我要把服务器生成的时间和这个文本一起发送给B客户端啊!怎么把时间放入dataContent的内容中?
你还是没描述清楚你具体是想做成个什么东西,很难为你提供最佳实践建议。

其实第一条回复就可以告诉你:可以通过客户端A将要发送的消息先发给服务端,再由服务端发给B,服务端在收到A的消息时,可以把你要的“时间”放进去。

但上面这种处理方法,显然是违背即时通讯架构的最佳实践的,只能算是hack!想知道你的真正需求目的是,评估你的这个东西非得通过服务端这么折腾是否有必要,另一个是有无其它更简单的途径。

真要这么实现的话,建议最好想清楚哦。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部