2017-05-01 16 views
0

websocketが正常に稼動していますが、私のルートで.send()メソッドを使用する必要があります。Websocket ws - Node&Express - エクスポートAPI

私のアプリはいくつかのファイルに分割されています。この場合、私が得た:

app.js

//..some other code.. 

//Server 

const server = http.createServer(app) 
var port = process.env.PORT || 80; 
const connection = server.listen(port,() => { 
    console.log('Listening on ' + port); 
}); 


const WebSocketServer = require("ws").Server; 
const wss = new WebSocketServer({ 
    server 
}); 

//Here I need to export the wss 

module.exports.sengMsg = function (msg, callback) { 
    return wss.on("connection", function (ws) { 

    ws.send(msg, callback); 


    ws.on("close", function() { 
     console.log("websocket connection close") 
    }) 
    }) 
}; 

api.js

//..some other code.. 

var sendMsg = require('../app').sendMsg; 


router.get('/', (req, res) => { 
    sendMsg('Hi I from default route', (err)=>{ 
     console.log("I got some error on ws"); 
    }) 
    res.send('Welcome to my API'); 

}) 

しかし、最終的に、私は

TypeError: sendMsg is not a function

何を考え出すをfuncionalをエクスポートするための推奨された方法ですこの設定を使用して私のルートに私のwssのityがありますか?

答えて

0

は、コードに、

var sendMsg = require('./app'); 

router.get('/', (req, res) => { 
    sendMsg.sendMsg('Hi I from default route', (err)=>{ 
    console.log("I got some error on ws"); 
    }) 
    res.send('Welcome to my API'); 

}) 

または以下にapp.jsのmodule.exportsはを変更を変更してみてください、

module.exports = { 
sendMessage :function (msg, callback) { 
    return wss.on("connection", function (ws) { 

     ws.send(msg, callback); 


     ws.on("close", function() { 
      console.log("websocket connection close") 
     }) 
    }) 
} 
} 
+0

は...私は同じエラーを取得しています動作しませんでした。 – Korte

+0

編集したコードがrequire文のドットの1つを削除しようとしました。 –

+0

@Korte解決策を試しましたか? –

関連する問題