【问题标题】:Package express-ws doesn't let clients connect包 express-ws 不允许客户端连接
【发布时间】:2017-03-14 17:18:44
【问题描述】:

我为 express-ws npm 包定义了一个快速路由器。路由器看起来像这样导出:

//ws.js
var express = require('express');
var router = express.Router();

var connections = {};
router.ws('/connect/', function (ws, req) {
    // console.log(ws);
    ws.on('close', function(x, y, z) {
        console.log(a, b, c);
    });
});

module.exports = router;

快递应用程序中的(并非所有)语句是(并且按顺序):

//app.js
var app = express();
var expressWs = require('express-ws')(app);

var index = require('./routes/index');
var ws = require('./routes/ws');

...
...

app.use('/ws', ws);
app.use('/*', index);

服务器有如下语句:

//bin/www - Generated by express generator

var app = require('../app');
var debug = require('debug')('server:server');
var http = require('http');

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

var server = http.createServer(app);
server.listen(port);

运行后,我无法通过 websocket 连接到 /ws 路由。我在这里错过了什么吗?有没有更好的方法来创建在 Express 4 上运行的 websocket?

这是我在客户端看到的错误!我做错了什么?

【问题讨论】:

    标签: node.js express websocket


    【解决方案1】:

    对 app.js 的更改

    var app = express();
    var server = require('http').Server(app);
    var expressWs = require('express-ws')(app,server);
    ...
    ...
    //module.exports = app;
    module.exports = {app: app,server: server};
    

    对 bin/www 的更改

    //var app = require('../app');
    var app = require('../app').app;
    ...
    ...
    //var server = http.createServer(app);
    var server = require('../app').server;
    

    【讨论】:

      【解决方案2】:

      我知道这是旧的,但这是问题所在。不需要 HTTP 服务器。

      //app.js
      const express = require('express');
      const { app } = require('express-ws')(express());
      
      const index = require('./routes/index');
      const ws = require('./routes/ws');
      
      ...
      
      app.use('/ws', ws);
      app.use('/*', index);
      
      ...
      
      app.listen(8080, () => console.log('Listening on port: 8080');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-03
        • 1970-01-01
        • 2016-06-09
        • 2023-03-09
        • 1970-01-01
        • 2014-09-23
        • 2018-02-12
        • 1970-01-01
        相关资源
        最近更新 更多