假设我有一套不同运动的房间(“足球”,“篮球”,“网球”......)和一组城市房间(“巴黎”,“伦敦”,“柏林”...... 。)在带有Socket.IO的Node.js应用程序中
是否有可能只向那些对足球感兴趣的伦敦发送和活动? 类似的东西:
io.sockets.in('london').in('football').emit('event_name', data);
或者设计不好?
提前致谢。
答案 0 :(得分:1)
你可以通过多种方式解决这个问题
您可以拥有房间,并希望收听发出的football
事件
io.sockets.in('london').emit('football',/* data */)
/london
或/london/football
等路由,则命名空间
您可以执行此操作io.of('/london').in('football').emit('update',/* data */
说明在/london
会议室中football
路由会发出update
事件。它在我看来稍微快一点,因为它不会在一个房间中组合很多用户,而是使用命名空间来处理发射事件。
每个城市和兴趣的房间。
io.sockets.in('london:football')
这是特定城市和运动的一个房间。
这个房间里的每个人都可以获得有关足球运动的最新信息。