默认
发表评论 14
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK如果想支持WEB的话,该怎么做?
如题,但是WEB不支持udp,我看过论坛的web即时通讯的文章,都是讲tcp的。
我尝试着写一个改造SendLoginDataAsync中的SendLoginDataAsync方法,里面的form_user_id不用ClientCoreSDK.getInstance().getCurrentUserId(),用参数直接传递,出现的问题是接收客户端返回的响应包接收不到(因为从头到尾根本没有一个客户端),所以这种方法好像行不通。
我现在准备尝试写一个客户端管理器一样的玩意儿,构造一个客户端,然后放进去,不过应该性能肯定不行。
不知大家有没有什么高见~~~


那我总结一下我出现的问题:
首先,我的目的是想实现在web端使用MobileIMSDK。
1. 我改了核心代码,效果是无需登录连接,直接发送消息,放出API供web端用ajax的方式调用。
2. 之后由于MobileIMSDK有一个响应包的逻辑,由于第一步发送的时候没有登录,导致无法接收响应包,就会出现重复发送的现象。
导致此方法方向错误
然后呢,我想着是不改代码,封装一个客户端容器。
1. 这个容器就包装着很多很多个客户端。
2. 普通用户在web端登录(或者进入聊天界面时)初始化一个客户端放在里面,发消息的时候再来里面找客户端。
3. 使用方式是 放出API供web端用ajax的方式调用。
后来我QQ和@JackJiang 沟通了一下,他告诉我说ajax长连接的方式很过时了。所以这个方法方向也是错误的。
以上是我的问题产生的过程。
那现在我有几个问题:
1. 如果不用ajax长连接、短轮询的方式,该用什么方式呢?Web又不支持UDP。
2. 实现web的流程图是不是大概如下:
[已回复] MobileIMSDK如果想支持WEB的话,该怎么做?_chart.png
如果是的话,Web服务器与UDP服务器通讯方式应该是正常的客户端通讯,那Web服务器与浏览器该如何通讯?(就是问题1)

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

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK 安卓端消息支持多少个字,有什么方法增加发送文字长度下一篇:[已回复] 安卓MobileIMSDK如何优雅的将所有非UI操作的逻辑放在另外一个进程内

本帖已收录至以下技术专辑

推荐方案
评论 14
你的问题有点乱,没看明白你第2段话是要解决什么问题。

我先回答你第一个问题:Web端当然没法支持UDP了,Web端即时通讯最佳方案目前来说就是用WebSocket,你可以从这篇文章入门:http://www.52im.net/thread-690-1-1.html

另外,MobileIMSDK目前已经有Web版了,只是还没想好要以什么方式放出来。
引用:JackJiang 发表于 2017-01-16 23:15
你的问题有点乱,没看明白你第2段话是要解决什么问题。

我先回答你第一个问题:Web端当然没法支持UDP了 ...

那篇文章已经看过了,我就是想在Web端使用MobileIMSDK。
第一个是我改代码然后产生的问题。
第二段话的意思就是封装一个容器,里面有N个客户端。来解决改代码后出现的应答包响应不了的问题。
引用:Sylow 发表于 2017-01-17 11:55
那篇文章已经看过了,我就是想在Web端使用MobileIMSDK。
第一个是我改代码然后产生的问题。
第二段话的 ...

建议以后两个问题分成两个帖子,不然好乱,你的第2个问题直接不想看。。。
引用:JackJiang 发表于 2017-01-17 12:21
建议以后两个问题分成两个帖子,不然好乱,你的第2个问题直接不想看。。。

强烈赞同
签名: 该会员没有填写今日想说内容.

我总结了一下我的问题,麻烦帮我看一下~~
引用:JackJiang 发表于 2017-01-17 12:21
建议以后两个问题分成两个帖子,不然好乱,你的第2个问题直接不想看。。。

我总结了一下我的问题,麻烦帮我看一下~~
我回复你补充的问题:

1)你上面修改了MobileIMSDK的代码,从你上面对问题的总结来看,我认为你没有真正理解web端即时通讯原理,虽然我没有看到你的代码但我认为你的修改方向是错的;
2)Web端即时通讯肯定不能直接udp,浏览里端压根就没有这东西。不过HTML5里已经有了WebSocket(就是基于TCP的应用层Socket协议),所以我之前回复你的让你看看这篇有关Weosocket的文章:http://www.52im.net/thread-690-1-1.html,你说已经看过,那么我认为你应该没有仔细看或看了但没明白;
3)Web的浏览器端肯定是不能直接跟APP端的IM服务端通讯的,因为浏览器不能直接支持UDP协议,但可以通过Websocket将消息发到WebSocket服务端,再由Websocket将消息通过某种方式(比如消息中间件或其它方式)与APP的IM服务端进行互通(反之亦然)。

其实,你如果希望web浏览器端能与APP端直接进行即时通讯(不需要桥接互通),有一个偷懒的方法,那就是让APP端也使用Websocket协议(事实是确实有些应用就是这么干的),这也是可行的,但回归到技术本身,WebSocket这字面意思已经能很明白地告诉你它的最佳应用场景应该是什么了(而非移动Native端)。
引用:JackJiang 发表于 2017-01-17 21:53
我回复你补充的问题:

1)你上面修改了MobileIMSDK的代码,从你上面对问题的总结来看,我认为你没有真正 ...

Ok,这个意思我懂了,我尝试写一波代码看看。
引用:Sylow 发表于 2017-01-17 21:57
Ok,这个意思我懂了,我尝试写一波代码看看。

个人建议先别慌着写代码,先把相关技术前前后后了解清楚了再动手不迟。
引用:JackJiang 发表于 2017-01-17 21:53
我回复你补充的问题:

1)你上面修改了MobileIMSDK的代码,从你上面对问题的总结来看,我认为你没有真正 ...

其实,你如果希望web浏览器端能与APP端直接进行即时通讯(不需要桥接互通),有一个偷懒的方法,那就是让APP端也使用Websocket协议(事实是确实有些应用就是这么干的),这也是可行的,但回归到技术本身,WebSocket这字面意思已经能很明白地告诉你它的最佳应用场景应该是什么了(而非移动Native端)。

真有应用这么玩?怕是有点坑爹吧
签名: 国庆长假还没有缓过来,请让我静一静,产品狗死远点...
引用:IMDeveloper 发表于 2017-01-17 22:00
“其实,你如果希望web浏览器端能与APP端直接进行即时通讯(不需要桥接互通),有一个偷懒的方法,那就是 ...

当然有,我恰好去年年底工作需要偶然看了看逸创云客服:http://www.kf5.com/,把它的web端打开后,对比下移动端sdk的代码你就明白了。确实有人这么干,而且已经用于商用服务了。
引用:JackJiang 发表于 2017-01-17 21:58
个人建议先别慌着写代码,先把相关技术前前后后了解清楚了再动手不迟。

Ok,了解,我一直是做Web方面工作的,对类似的这种真是一窍不通~~
引用:JackJiang 发表于 2017-01-17 22:02
当然有,我恰好去年年底工作需要偶然看了看逸创云客服:http://www.kf5.com/,把它的web端打开后,对比下 ...

群主回家过年了吧,论坛好几天没更新新文章罗
签名: 秋天到了,终于凉快了
MobileIMSDK-Web版已经发布,专用于手机或PC端浏览器的网页聊天和消息推送:http://www.52im.net/thread-959-1-1.html
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部