Package express-ws不允许客户端连接

时间:2016-11-01 14:35:51

标签: node.js express websocket

我为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?

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

enter image description here

2 个答案:

答案 0 :(得分:5)

更改为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;

答案 1 :(得分:0)

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

("30mins3" as NSString).integerValue // 30
相关问题