私はsocket.ioを使用していますが、接続されたユーザーに対してのみサーバーからクライアントにイベントを発行したい場合は機能しません!
エラーも応答もありません:(
それは私のコードです
// Server.js
var server = require('http').createServer(),
io = require('socket.io')(server),
logger = require('winston'),
port = 1337;
// Logger config
logger.remove(logger.transports.Console);
logger.add(logger.transports.Console, { colorize: true, timestamp: true });
logger.info('SocketIO > listening on port ' + port);
io.on('connection', function (socket){
logger.info('SocketIO > Connected socket ' + socket.id);
socket.on('ElephantIO.login', function (user){
socket.emit('SocketIO.login', user);
});
socket.on('disconnect', function () {
logger.info('SocketIO > Disconnected socket ' + socket.id);
});
});
server.listen(port);
// Client.js
(function() {
var socket = io.connect('http://localhost:1337');
socket.on('SocketIO.login', function(user) {
console.log(user);
alert('SocketIO.login');
});
})();
このイベントを他のすべての接続ユーザーに発行するように変更するsocket.emit('SocketIO.login', user);
と、動作しますsocket.broadcast.emit('SocketIO.login', user);
このイベントをすべての接続ユーザーに発行するように変更するsocket.emit('SocketIO.login', user);
と、同じ動作になりますio.emit('SocketIO.login', user);
socket.broadcast.emit('SocketIO.login', user);
常に現在のユーザーウィンドウには応答もエラーもありません。