开发者社区> 问答> 正文

teleport Peer(server)端怎么接收其他语言的发起的socket请求 400 请求

teleport Peer(server)端怎么接收其他语言的发起的socket请求(如:apicloud的 socketManager模块)  

@henrylee2cn 你好,想跟你请教个问题: teleport Peer(server)端怎么接收其他语言的发起的socket请求(如:apicloud的 socketManager模块) 主要是msg的格式怎么样才能符合protocol, 一直报的的: [DEBU] disconnect(192.168.1.122:53105) when reading: mismatched protocol <github.com/henrylee2cn/teleport/session.go:678> <javascript> function socket_write(sid, msg) {         console.log(">> 发出数据:");         msg = {             "seq": "",             "mtype": 0,             "uri": "",             "meta": "",             "body_codec": 0,             "body": null,             "xfer_pipe": [],             "size": 0         };         msg = JSON.stringify(msg);         //msg = fun_stringToHex(msg);         var len = msg.length;         msg = len + msg;         console.log(msg);         //msg = {"sid":11,"state":200,"data":""};         var socketManager = scope.socketManager;         socketManager.write({             sid: sid,             data: msg         }, function(ret, err) {             console.log(JSON.stringify(ret));             if (ret.status) {                 //console.log(JSON.stringify(ret));             } else {                 //console.log(JSON.stringify(err));             }         });     }     谢谢

展开
收起
kun坤 2020-05-29 15:53:57 463 0
1 条回答
写回答
取消 提交回答
  • 首先感谢的使用与支持。推荐你不要使用默认协议,使用JSON协议,更便于JS对接。

    {length bytes} {xferPipe length byte} {xferPipe bytes} {JSON bytes}

    {length bytes}: uint32, 4 bytes, big endian {xferPipe length byte}: 1 byte {xferPipe bytes}: one byte one xfer {JSON bytes}: {"seq":%d,"mtype":%d,"serviceMethod":%q,"meta":%q,"bodyCodec":%d,"body":"%s"}

    具体的用法,可以参考这里: https://github.com/henrylee2cn/teleport/tree/v5/proto/jsonproto

    2020-05-29 15:54:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《基于 Service Worker 实现在线代理》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载