请选择 进入手机版 | 继续访问电脑版

默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] C++用webscoket方式连MobileIMSDK-Web,无法发送,只能收消息?
神秘人  发表于 4 年前 |阅读模式
c++链接服务端地址,ws://127.0.0.1:8022/socket.io/?token=%7B%22loginUserId%22%3A%221bbf4340-aab6-11e9-9c0d-f35d76816563%22%2C%22loginToken%22%3A%227d921032-7bdc-4944-9d1b-633ffd837692%22%7D&EIO=3&transport=websocket
在html端用js发消息c++端可以收到,c++端发送消息MobileIMSDK web服务端无法收到消息,
发送消息的内容格式:
首先猜测[size=13.3333px]这样的格式
{type:'2'
        , from:消息发送者uid
        , to:消息接收者uid
        , dataContent:消息内容
        , fp:guid
        , typeu: -1
        , msgTime: null
    }

试了不行,
[size=13.3333px]看了socketio.js消息格式,
[size=13.3333px]然后猜测这样的格式:225:42["2",{"type":"2","from":消息发送者uid[size=13.3333px],"to":消息接收者uid[size=13.3333px],"dataContent":"{"msg":"1"}","fp":"82e4a5a0-aac6-11e9-92cc-316781ecd0e6","typeu":-1,"msgTime":null}]
[size=13.3333px]这样也不行。
[size=13.3333px]还有MobileIMSDK web服务端[size=13.3333px],[size=13.3333px]客户端[size=13.3333px]用js webscoket用原生websocket方式链接不行吗,必须要用socketio.js链接吗?





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

推荐方案
评论 3
你用错了,MobielIMSDK-Web是基于 socket.io 框架,而socket.io框架不仅仅是websocket的简单api封装而已,它封装各种浏览器兼容性、通信算法等等逻辑,而且在某些情况下,它的通信方式也并不局限于websocket(具体见《Web端即时通讯技术的发展与WebSocket、Socket.io的技术实践》)。

所以,解决办法就是,你应该用socket.io配套的c++客户库,而不是只用原生的websocket api,见:https://github.com/socketio/socket.io-client-cpp,这是socket.io官方维护的c++版客户端库。
楼主是用c++写im吗?
神秘人  发表于 4 年前
引用:Shahala 发表于 2019-07-21 11:34
楼主是用c++写im吗?

c++连接im
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部