WebSockets和Socket.io的新手,但是请读到Websocket比HTTP请求快得多的一个原因是因为Once established, a websocket connection does not have to send headers with its messages
,因此每次数据传输的开销都较小。因此,在Node.js服务器上的socket.io中,我尝试过:
...
io.on('connection', (socket) => {
console.log('initial', socket.id, socket.handshake.headers.cookie);
socket.on('test', async (resHandler) => {
console.log("socket test", socket.handshake.headers.cookie);
let result = await dbFun.test(pool);
console.log(result);
resHandler(result);
});
})
...
在客户端上,我与此套接字/服务器建立了连接,并发出了“测试”事件。我原本希望在“初始”日志中看到套接字cookie标头,但是当发出“ test”事件时,也惊讶地看到它也出现在“套接字测试”日志中。这是否意味着在客户端套接字发出“测试”事件时,即使在初始握手和套接字连接建立之后,套接字仍包含带有后续事件的头数据?如果是这样,这与HTTP请求(在每个请求中都包含标头)有什么不同/更快?