2016-11-01 7 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 websocket経由で接続することができません。私はここに何かを逃していますかWebSocketをExpress 4上で実行するより良い方法はありますか?

これはクライアントで表示されるエラーです。私は間違って何をしていますか?

enter image description here

答えて

2

ビン/ WWWへ

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

変更

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

これが受け入れられなければならないのapp.jsに変わります。 'app、server'の部分です。 –

関連する問題