我已经实现了许多socket.io命名空间,用户可以根据它们所在的页面连接到这些命名空间。
将数据发送到特定命名空间:房间组合似乎需要多余的样板。
这就是我当前设置命名空间并向给定房间中的套接字发送事件的方式:
1)设置命名空间
let newsNs = io.of('/news');
newsNs.on(CONNECTION, socket => {
socket.join('political');
});
2)将事件发送到/news
名称空间和political
会议室中的套接字:
newsNs.in('political').clients((err, clients) => {
clients.forEach(c => newsNs.connected[c].emit(EVENT, 'data'));
})
是否有一种更清晰,更简洁的方式发送到命名空间中的所有套接字:房间组合,而不首先迭代每个客户端,然后从someNs.connected派生套接字?
答案 0 :(得分:3)
简单的var castDyn = Expression.Convert(property, typeof(string));
var result = Expression.MakeBinary(ExpressionType.Equal, castDyn, right);
就足够了。
以http://socket.io/docs/rooms-and-namespaces/#joining-and-leaving为例。