Socket 使用 Node.js 发出 ajax 接收的数据
Posted
技术标签:
【中文标题】Socket 使用 Node.js 发出 ajax 接收的数据【英文标题】:Socket emit data received by ajax with Node.js 【发布时间】:2015-06-02 17:15:29 【问题描述】:服务器端:我通过 ajax 接收用户列表,我试图通过套接字发出它,但只发送到同一个客户端。 像这样的
io.sockets.emit("users list", users: users, me : req.me);//This work, but to all users
socket.emit("users list", users: users, me : req.me); //Im trying something like this
代码
//Receive user list
app.post('/', function(request, response)
response.setHeader('Access-Control-Allow-Origin', 'http://localhost'); //To allow response
var req = JSON.parse(request.body.data);
if(typeof req != "object")
response.send(status: false, msg: "Error on load user list");
else
socket.id = req.me.id;
req.users.data.forEach(function(user)
if(users[user.id] == null)
users[user.id] = user;
);
//io.sockets.emit("users list", users: users, me : req.me);//This work, but to all users
socket.emit("users list", users: users, me : req.me); //Im trying something like this
response.send(status: true, msg: "");// echo the result back
);
我也想知道是否有一些最好的方法来做到这一点......
【问题讨论】:
但是你为什么要发送一些你刚刚从同一个客户那里收到的东西呢? 我的 Node 应用程序在内部和 iframe(与客户端一起)。 php(顶部框架)发送请求,Node(iframe)加载包含用户列表的页面。 【参考方案1】:您可以尝试将数据发送到特定的套接字,如下所示:
io.sockets.socket(socket.id).emit("用户列表", users: users, me: req.me);
【讨论】:
以上是关于Socket 使用 Node.js 发出 ajax 接收的数据的主要内容,如果未能解决你的问题,请参考以下文章
Node.js socket.io 没有响应 iOS socket.io 发出请求
尝试发出时,带有 Node.js 的 Socket.io 在路由文件中返回未定义
如果使用 Node.js 在 Socket.io 中的应用程序中登录功能,则为特定用户发出事件
使用 Polymer Iron-ajax 和 Node.js 发出 CORS 请求