好的,所以我整个上午都在苦苦挣扎,无法找到解决方案(或者我可能只是遗漏了一些东西)。
TL;DR
问题:1 - Socket.IO中的套接字持续多长时间?什么时候发生'断开'事件?当我关闭一个标签,或者只是改变路线时(例如从/ category到/ recipe)?
问题:2 - 您是否有一些内容,文章或建议,这个应用程序(在多个页面上使用socket.io + express)应该如何?
More info
我想在Express中创建管理面板,路径为:
/category
/recipe
/ingredients
现在让我们说有两个管理员将一些内容添加到一起。我希望他们看到,他们每个人刚刚添加了什么,没有刷新网站。这里是Socket.IO
到现在为止我认为可以这样做:
socket.sessionID = userCookies['sid']
)---> (sid
由express.session中间件创建),现在我知道套接字是否属于用户handleCategoryCreate
)/category
路线中,在渲染我们的视图之前,请致电socket.join('/category')
和socket.leave(previousRoom)
)socket.emit('new category has been added')
(例如/category
)我不喜欢我的方法,因为它似乎非常混乱+我要创建一些GLOBAL哈希,这将保留{sid => socket}
(以方便访问路由中的套接字),并且不确定如何做得很好。
我很感激任何帮助,因为我真的迷失了
编辑: 如果这会有所帮助我将我的代码放在git:https://github.com/matDobek/eatDat上,值得一看的文件:
lib/socketapp
app.js