2016-11-01 1 views
4

express-ws npm 패키지에 대해 명시 적 라우터가 정의되어 있습니다. 라우터는 같은 수출된다 보인다 :패키지 express-ws로 클라이언트를 연결할 수 없습니다.

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

(모든) 명시 응용 프로그램에서 문이다 (순서대로)

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

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

서버가 같은 문장이있다

실행 후 웹 소켓을 통해 /ws 경로에 연결할 수 없습니다. 내가 여기서 뭔가를 놓치고 있니? Express 4에서 실행되는 websocket을 만드는 더 좋은 방법이 있습니까?

이것은 클라이언트에서 보이는 오류입니다! 내가 도대체 ​​뭘 잘못하고있는 겁니까?

enter image description here

답변

2

변경 빈/www가

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

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

변경이 허용되어야한다 app.js합니다. 'app, server' 부분입니다. –

관련 문제