当前位置: 首页 > 工具软件 > ws-http > 使用案例 >

express-ws

袁英豪
2023-12-01

npm原文
  Express应用程序的WebSocket端点。允许您像任何其他类型的路由一样定义WebSocket端点,并应用常规的Express中间件。WebSocket支持是在ws库的帮助下实现的

安装

cnpm install --save express-ws//安装好后node-modoules目录里会增加一个express-ws包

用法

将此行添加到Express应用程序,即bin/www文件:

var express = require('express');
var app = express();
var expressWs = require('express-ws')(app);
 
app.use(function (req, res, next) {
  console.log('middleware');
  req.testing = 'testing';
  return next();
});
 
app.get('/', function(req, res, next){
  console.log('get route', req.testing);
  res.end();
});
 
app.ws('/', function(ws, req) {
  ws.on('message', function(msg) {
    console.log(msg);
  });
  console.log('socket', req.testing);
});
 
app.listen(3000);

Api

expressWs(app, server, options)

  • 设置express-ws指定的app。这也将修改Express的全局路由器原型 - leaveRouterUntouched有关禁用此功能的更多信息,请参阅该选项。
  • app:要设置的Express应用程序express-ws。
  • server:可选。使用自定义时http.Server,您应该在此处传递它,以便express-ws可以使用它来设置WebSocket升级处理程序。如果未指定a server,则只能将其与调用时自动创建的服务器一起使用app.listen。
  • options:可选。包含更多选项的对象。
  1. leaveRouterUntouched:设置此项以true防止express-ws修改Router原型。启用此选项后applyTo,您必须手动.ws启用要启用的每个路由器。
  2. wsOptions:传递给WebSocketServer构造函数的Options对象。任何ws特定功能所必需的。

wsInstance.app

  • 此属性包含在其上设置Express WS的应用程序。
    wsInstance.getWss()
  • 返回基础WebSocket服务器/处理程序。可以使用 wsInstance.getWss().clients 获取此服务器的所有已连接WebSocket客户端的列表

wsInstance.applyTo(router)

  • 设置express-ws给定router(或其他类似路由器的对象)。您只需要在两种情况下使用它:
  1. 您已启用options.leaveRouterUntouched,或
  2. 您正在使用不基于express.Router原型的自定义路由器。
    在大多数情况下,您根本不需要这个。
 类似资料: