Node.jsでsoket.ioを使用していますが問題なく動作していますが、ルートファイルに問題があります。socket.ioはエクスプレスルート内で正しく動作しません
以下は私のコードとフローです。 私はserver.js
ファイルを持っています。私はio
と定義しています。
var express = require('express'),
app = express(),
http = require('http').Server(app);
var io = require('socket.io').listen(http);
//io from server.js
io.on('connection', function (socket) {
socket.emit('getDevicePostData', { message : 'Hi from server!!' });
socket.on('sendDevicePostData', function("Hi from server") {});
});
// pass io to routes file
var smart_control = require('./smart_control.js')(io);
app.use('/', smart_control);
そしてsmart_control.js
ファイルコードは時々仕事と時々動作しないルートのEMIT上
module.exports = function(io) {
router.post('/emitdata', function(req, res, next) {
io.sockets.emit('getDevicePostData', { message : 'Hi from route!!' });
});
return router;
}
を下回っています。
そして、これは角度jsから呼び出されます。私は、角度コントローラのコードの下の角 でhttps://www.npmjs.com/package/angular-socket-ioパッケージを使用します。
mySocket.on('getDevicePostData', function(data) {
console.log(data);
});
はここmySocket工場です。
私のコードで何が間違っていますか。ルートファイルからの主な問題。
動作しないとどうなりますか?サーバーはPOSTに関連する何かを表示しますか?次のようにしてください:POST/emitdata [レスポンスコード] – chirag
私はこのmySocket.on( 'getDevicePostData'、function(data){ console.log(data); })の角側で応答を得られませんでした。 – Jignasa
あなたのルータは呼び出されていますか? – chirag