尝试了不同的方法,但数据最多发送到一个或两个客户端。如何将数据发送到连接到服务器的所有客户端?我做错了什么?
server.js:
var PORT = 3000; var options = { // 'log level': 0 }; var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(app); var io = require('socket.io').listen(server, options); server.listen(PORT); app.get('/', function (req, res) { res.sendfile(__dirname + '/attantions/templates/.default/template.php'); }); io.sockets.on('connection', function (client) { client.on('attantion', function (data) { try { // Tried so io.sockets.volatile.emit('attantion', data); // And tried so io.sockets.emit('attantion', data); client.emit('attantion', data); client.broadcast.emit('attantion', data ); } catch (e) { console.log(e); client.disconnect(); } }); });
client.js:
socket.emit("attantion", data); socket.on('attantion', function (data) { pushData(data); });
有关socket.io消息的不同选项,请参阅本文
将响应发送到除发送方(socket.io)以外的所有客户端
io.sockets.on('connection', function (client) {
client.on('attantion', function (data) {
//client.emit('attantion', data ); // This will send it to only the client
//client.broadcast.emit('attantion', data); // This will send it to everyone but this client
io.emit('attantion', data); // This will send it to all attached sockets.
});
});
编辑
不知道这个帖子能不能帮到你?
socket.io-无法加载文件
我很好奇通过node.js向客户端发送php文件是如何工作的?您正在使用另一个框架吗?
你能更多地展示你的客户端代码吗?加载lib和套接字的实例化。