什么Express websocket事件存在?

我想知道什么Web套接字事件存在? 到目前为止,我只使用了ws.on('message')事件,但是我想使用一个当连接build立和closures时触​​发的事件。 我尝试添加ws.on('connection') ,但没有被触发。

为什么在websocket模块文档中没有列出所有的事件? https://www.npmjs.com/package/express-ws

我的代码:

 app.ws('/', function (ws, req) { ws.on('message', function (textChunk) { //do stuff } }); }); 

我需要一些客户端编程来做到这一点吗?

编辑:我试着添加这个,但它没有触发当我从我的客户端连接。

 ws.on('request', function () { console.log("request"); }); 

看完express-ws的源代码后,看起来可以执行以下操作。

 var express = require('express'); var app = express(); var expressWs = require('express-ws')(app); // get the WebsocketServer instance with getWss() // https://github.com/HenningM/express-ws/blob/5b5cf93bb378a0e6dbe6ab33313bb442b0c25868/index.js#L72-L74 expressWs.getWss().on('connection', function(ws) { console.log('connection open'); }); // ... express middleware // ... websocket middle ware app.ws('/', function(ws, req) { ws.on('message', function(msg) { console.log(msg); }); }); app.listen(3000); 

提供给app.ws的函数是一个新的websocket被打开时执行的函数。 所以用这种方法:

 app.ws('/', function (ws, req) { console.log("New connection has opened!"); ws.on('close', function() { console.log('The connection was closed!'); }); ws.on('message', function (message) { console.log('Message received: '+message); }); }); 

好吧,我发现了一个事件,实际上触发。 现在,如果只有我会find一个打开连接被调用一次。

 app.ws('/', function (ws, req) { ws.on('close', function() { console.log('close connection'); }); ws.on('message', function (textChunk) { //do stuff } }); });