2016-11-01 6 views
4

Ich habe einen Express-Router für Express-WS npm-Paket definiert. Der Router sieht exportiert wie:Paket express-ws lässt Clients nicht verbinden

//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; 

Die (nicht alle) Aussagen im Express-App sind (und in dieser Reihenfolge):

//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); 

Der Server verfügt über Aussagen wie:

//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); 

Nachdem ich es ausgeführt habe, kann ich keine Verbindung zu /ws Route über Websocket herstellen. Fehle ich hier etwas? Gibt es eine bessere Möglichkeit, Websocket auf Express 4 zu erstellen?

Das ist der Fehler, den ich auf dem Client sehe! Was mache ich falsch?

enter image description here

Antwort

2

Änderungen

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}; 

Änderungen an bin/www

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

Diese akzeptiert werden sollte, um app.js. Der 'app, server' Teil. –

Verwandte Themen