将前端原生WebSocket客户端连接到Node.js Socket.io服务器

3

我在Express/Node.js应用程序中使用Socket.io作为后端websocket服务器。服务器端代码如下:

const socketIo = io(server);
socketIo.on('connection', (client) => {
    console.log('client connected');
    client.emit('test', { test: '123' });
    client.on('client-test', (data) => {
        console.log('from client: ', data);
    });
});

在前端(托管在相同的Node.js服务器上),我正在使用本地WebSockets,我的代码如下:
const socket = new WebSocket('ws://localhost:3001');

socket.onopen = () => {
    socket.send('I am a client and I am listening');

socket.onmessage = (event) => {
    console.log('Client received message: ', event);
};

socket.onclose = (event) => {
    console.log('Client socket has closed: ', event);
    }
};

Websocket连接似乎从未建立(服务器没有记录任何信息)。此外,我不确定如何在客户端接受来自服务器发出的消息(即“test”消息),也不知道如何在服务器上从客户端接受消息(即服务器期望一些“client-test”消息)。
我想知道前端的原生websocket是否与后端的Socket.io不兼容。当我在前端使用Socket.io时,我的设置是可用的,但如果可能的话,我想让它与前端的原生websocket一起使用。
1个回答

4

1
那么,使用非JS语言的人应该如何连接呢? - BradLaney
1
@BradLaney 他们还有其他几种语言的客户端:Github 你也可以在谷歌上搜索第三方客户端以选择你喜欢的语言。 - Brahma Dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接