Socket.io 客户端无法与 websocket 服务器一起使用

我使用https://github.com/gorilla/websocket在 go 中编写了一个 websocket 服务器。在客户端,前端团队想要使用 Socket.io,但无法正常工作。使用普通的 websockets 一切正常。我对 Socket.io 的了解不多,只是我在互联网上阅读的内容,并且我没有找到任何决定性和最近的答案。


有没有可能让 Socket.io 与普通的 websocket 服务器一起工作?


Socket.IO 客户端错误:超时。

Socket.IO 客户端代码:


    var token = "valid_token";


    var socket = io(

        'ws://localhost:6060',

        {

            transports: ['websocket'],

            path: '/ws/dispatchers',

            query:  {

                token: token

            },

        }

    );


    socket.on('connect_error', (error) => {

        console.log("------connect_error------");

        console.log(error);

    });


    socket.on('connect_timeout', (timeout) => {

        console.log("------timeout-----");

        console.log(timeout);

    });


    socket.on('connect', function(){

        console.log("---------connect---------");

    });

    socket.on('event', function(data){

        console.log(data)

    });

    socket.on('disconnect', function(){

        console.log("---------disconnect---------")

    });

    socket.on('error', function(err){

        console.log("--------error------------");

        console.log(err)

    });


    socket.on('ping', () => {

        console.log("--------ping------------");


    });


    socket.on('pong', (latency) => {

        console.log("--------pong------------");

    });

后端错误:websocket: close 1005 (no status)

后端代码,同: https ://github.com/gorilla/websocket/tree/master/examples/chat


慕侠2389804
浏览 291回答 1
1回答

慕尼黑的夜晚无繁华

来自 Socket.io 文档什么 Socket.IO 不是 Socket.IO 不是 WebSocket 实现。尽管 Socket.IO 确实尽可能使用 WebSocket 作为传输,但它会为每个数据包添加一些元数据:数据包类型、命名空间和需要消息确认时的数据包 ID。这就是为什么 WebSocket 客户端将无法成功连接到 Socket.IO 服务器,而 Socket.IO 客户端也将无法连接到 WebSocket 服务器。请在此处查看协议规范。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go