节点.js应通知哪个用户
Node.js which user should be notified
我在我的网站上建立了一个通知系统。我有某种成员组。当小组成员发布内容时,应通知同一组的其他成员。当用户刷新页面时,将显示通知。然而,世界正在实时发展。谷歌这个问题向我推荐了Node.js(不确定是最好的方法)。我现在可以:创建服务器,连接到数据库,查询数据库,使用 socket.io 向所有连接的客户端发送广泛的消息......
但是到目前为止我无法做/理解的是指定消息(通知)应传递给哪些用户。
环顾四周 SO 以这种方式看起来是我想要的:
var socket = io.listen(server);
socket.on('connection', function(client) {
client.on('message', function(msg) {
broadcast(msg); // broadcast message to all clients
// OR
socket.clients[session_id].send(msg); // send message to one client
});
client.on('disconnect', function( ) {
console.log('Client Disconnected.');
});
});
我不知道session_id是什么,它和用户登录时创建的session_id一样吗?寻找一些直接的解决方案真的很累,任何帮助都将不胜感激。
创建聊天室,多个客户端可以是多个聊天室的一部分,并且聊天室中的客户端可以广播到聊天室的所有其他成员。
假设您的消息中包含房间名称和数据正文
socket.on('connection', function(client) {
client.on('message', function(msg) {
// broadcast message to all clients
io.sockets.in(msg.room).emit(msg.data);
// OR
socket.clients[session_id].send(msg); // send message to one client
});
client.on('disconnect', function( ) {
console.log('Client Disconnected.');
});
});
https://github.com/LearnBoost/socket.io这应该有一些例子
http://psitsmike.com/2011/10/node-js-and-socket-io-multiroom-chat-tutorial/这是一个很好的
下面是
socket.io 文档中的示例:
存储与客户端关联的数据
有时,需要存储与会话持续时间所需的客户端关联的数据。
服务器端
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.on('set nickname', function (name) {
socket.set('nickname', name, function () { socket.emit('ready'); });
});
socket.on('msg', function () {
socket.get('nickname', function (err, name) {
console.log('Chat message by ', name);
});
});
});
客户端
<script>
var socket = io.connect('http://localhost');
socket.on('connect', function () {
socket.emit('set nickname', prompt('What is your nickname?'));
socket.on('ready', function () {
console.log('Connected !');
socket.emit('msg', prompt('What is your message?'));
});
});
</script>
Socket.IO 非常
易于使用。
请看这里的文档:https://github.com/learnboost/socket.io/
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.join('justin bieber fans');
socket.broadcast.to('justin bieber fans').emit('new fan');
io.sockets.in('rammstein fans').emit('new non-fan');
});
相关文章:
- 节点.js应通知哪个用户
- 如何将推送通知从本地解析发送到用户
- 当数据库中的表发生更改时通知用户
- Zkoss:如何通知用户会话超时或与服务器的连接丢失
- 如何向特定用户/浏览器发送浏览器通知
- URL中用户@的几个请求导致“;违反政策通知;来自Google AdSense
- 使用Nodejs在Mysql中插入多个值,并用响应通知用户
- 用户点击后关闭通知的Google Chrome扩展
- rel=“prerender” load event?预呈现完成时通知用户
- 如何推送用户正在运行旧版本的通知
- 当用户单击网页中的任意位置时,如何获得通知
- CakePHP3:如何使用视图单元格实现Facebook风格或堆栈式用户通知
- 如何使用 chrome 桌面通知向许多用户发送通知
- 通知 API:当用户不在现场时
- 如何通过 Web 推送发送用户特定的通知
- 向其他用户推送通知
- 聊天应用程序 - 当有人进入/离开房间时,用声音通知用户
- 如何将数据(如用户 ID)传递给 Web 工作人员,以便从服务器获取其他推送通知数据
- 使用推送器 API 通知特定用户
- 用户通知库