存在哪些Express websocket事件

What Express websocket events exist?

本文关键字:websocket 事件 Express 存在      更新时间:2023-09-26

我想知道存在什么websocket事件到目前为止,我只使用ws.on('message')事件,但我想使用一个在连接建立和关闭时触发的事件。我试着添加ws.on('connection'),但没有触发。

我的代码:

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

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

我试着添加这个,但是当我从客户端连接时它没有触发。

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

提供给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);
    });
});

查看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);


<

老反应/h2>

有以下内容:

close
error
message
open

https://developer.mozilla.org/en-US/docs/Web/API/WebSocket属性

好了,我又发现了一个实际触发的事件。现在如果我能找到一个在打开连接时被调用一次的方法就好了。

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