我在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一起使用。