帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
6
帖子
0
勋章
12
Y币

[插件使用] socketManager链接创建成功,消息发不出去,也接收不到

[复制链接]
发表于 2019-6-21 14:38:07
大神们 请教个问题,app页面socket我用的官方模块socketManager,后端用的tinhkphp的workerman,链接创建成功,但是发送消息失败,后端提示 请求是http协议的,这个模块封装的 请求不应该是   ws://xxxxxxx:xxxx   这种吗
6
帖子
0
勋章
12
Y币
APP页面用原生的socket,是可以的,但是全局加密后socket连不上,所以用的官方模块,结果。。。。
42
帖子
4
勋章
1万+
Y币
从服务器发送消息是否可以接收到
6
帖子
0
勋章
12
Y币
Mr.ZhouHeng 发表于 2019-6-21 14:54
从服务器发送消息是否可以接收到

也接收不到
6
帖子
0
勋章
12
Y币
  1.   if (socket!=null&&loginid!=""&&loginid!=undefined&&loginid!=null) {
  2.         socket.createSocket({
  3.             type: 'tcp',
  4.             host: '192.168.14.42',
  5.             port: 2345
  6.         }, function(ret, err) {
  7.             sid=ret.sid;
  8.             console.log("建立连接");
  9.             console.log(JSON.stringify(ret));
  10.             if (ret.state==101||ret.state==102||ret.state==103) {
  11.               if (ret.state==102) {
  12.                 api.sendEvent({
  13.                     name: 'online',
  14.                     extra: {
  15.                         online: true
  16.                     }
  17.                 });
  18.                 palyer_end_num=0;
  19.                 playerFunc("widget://res/start.mp3")
  20.                 clearInterval(socketTimer);
  21.                 messagerTimer = setInterval(function() {
  22.                   var pingdata=JSON.stringify({"type":"ping","loginid":loginid});
  23.                   console.log(pingdata);
  24.                       if(socket!=null){
  25.                         socket.write({
  26.                             sid: sid,
  27.                             data: pingdata
  28.                         }, function(ret, err) {

  29.                         });
  30.                       }
  31.                 }, 5000);
  32.               }else if(ret.statte==103){
  33.                 onmessages(ret.data);
  34.               }
  35.             }
复制代码
6
帖子
0
勋章
12
Y币
Mr.ZhouHeng 发表于 2019-6-21 14:54
从服务器发送消息是否可以接收到

部分代码,麻烦看一下
42
帖子
4
勋章
1万+
Y币
super_gch 发表于 2019-6-21 14:57
部分代码,麻烦看一下

   socket.createSocket({
            type: 'tcp',
            host: '192.168.14.42',
            port: 2345
        }, function(ret, err) {

打印一下ret  跟err看下报什么
6
帖子
0
勋章
12
Y币
Mr.ZhouHeng 发表于 2019-6-21 15:06
socket.createSocket({
            type: 'tcp',
            host: '192.168.14.42',

建立键连接成功了,没报错,是write的时候不行,后端提示,产生了HTTP请求,400错误
  1.   socket.write({
  2.                             sid: sid,
  3.                             data: pingdata
  4.                         }, function(ret, err) {

  5.                         });
复制代码
6
帖子
0
勋章
12
Y币
super_gch 发表于 2019-6-21 15:11
建立键连接成功了,没报错,是write的时候不行,后端提示,产生了HTTP请求,400错误 ...

这是日志,data中是后端返回的信息,具体就是workerman告诉我前端是一个http请求,所以报错了
  1. 建立连接 at socket.js : 20
  2. {"sid":"2a0a5141","state":101,"data":"success"} at socket.js : 21
  3. 建立连接 at socket.js : 20
  4. {"sid":"2a0a5141","state":102,"data":"success"} at socket.js : 21
  5. {"type":"ping","loginid":7} at socket.js : 35
  6. 建立连接 at socket.js : 20
  7. {"sid":"2a0a5141","state":103,"data":"HTTP/1.1 400 Bad Request\r\n\r\n<b>400 Bad Request</b><br>Invalid handshake data for websocket. <br> See <a href="http://wiki**.**/Error1">http://wiki**.**/Error1</a> for detail."} at socket.js : 21
  8. 建立连接 at socket.js : 20
  9. {"sid":"2a0a5141","state":204,"data":""} at socket.js : 21
  10. 链接关闭 at socket.js : 54
复制代码
42
帖子
4
勋章
1万+
Y币
本帖最后由 Mr.ZhouHeng 于 2019-6-21 17:12 编辑
super_gch 发表于 2019-6-21 15:14
这是日志,data中是后端返回的信息,具体就是workerman告诉我前端是一个http请求,所以报错了 ...

建议你逐步打印排查一下  因为这个模块我很少用  所以也看不出具体问题  建议你逐步打印根据打印信息区排查问题   
或者论坛搜下这个模块
12下一页
您需要登录后才可以回帖 登录

本版积分规则