初学websocket,
对于这段代码有些不理解,websocket是用于客户端-服务器的异步通信方法,但是代码中一直是wsh.send(messgae),我的理解就是一直是客户端在发送消息,请问正确的理解应该是什么呢?wss的回调函数传入的wh又是什么呢?
const WebSocket = require('ws');
const WebSocketServer = WebSocket.Server;
let count = 0;
const wss = new WebSocketServer({port: 3000});
let wsh = new WebSocket('ws://localhost:3000/ws/chat');
wsh.on('open', function () {
console.log(`[CLIENT] open()`);
wsh.send('Hello!');
});
wss.on('connection', function (wh) {
console.log('wh:-'+wh.path);
console.log(`[SERVER] connection() 有websocket请求接入啦`);
wh.on('message', function (message) {
console.log(`[SERVER] Received: ${message}`);
setTimeout(() => {
wh.send(`What's your name?`, (err) => {
if (err) {
console.log(`[SERVER] error: ${err}`);
}
});
}, 1000);
})
});
wsh.on('message', function (message) {
console.log(`[CLIENT] Received: ${message}`);
count++;
if (count > 3) {
wsh.send('Goodbye!');
wsh.close();
} else {
setTimeout(() => {
wsh.send(`Hello, I'm Mr No.${count}!`);
}, 1000);
}
});
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信——允许服务器主动发送信息给客户端。 你可以理解一下WebSocket实现原理是怎么样的,wsh.send(messgae)只是一个方法的载体,而真正发送的message是服务器之前的通信来完成。----个人理解轻喷~