NodeJS + Socket.IO通过多个页面

时间:2014-04-05 14:35:22

标签: node.js express socket.io

好的,所以我整个上午都在苦苦挣扎,无法找到解决方案(或者我可能只是遗漏了一些东西)。

TL;DR

问题:1 - Socket.IO中的套接字持续多长时间?什么时候发生'断开'事件?当我关闭一个标签,或者只是改变路线时(例如从/ category到/ recipe)?

问题:2 - 您是否有一些内容,文章或建议,这个应用程序(在多个页面上使用socket.io + express)应该如何?

More info

我想在Express中创建管理面板,路径为:

/category /recipe /ingredients

现在让我们说有两个管理员将一些内容添加到一起。我希望他们看到,他们每个人刚刚添加了什么,没有刷新网站。这里是Socket.IO

到现在为止我认为可以这样做:

  1. 套接字认证(socket.sessionID = userCookies['sid'])---> (sid由express.session中间件创建),现在我知道套接字是否属于用户
  2. 在单独的文件注册表中所有事件(例如handleCategoryCreate
  3. 在路线中加入房间(例如在/category路线中,在渲染我们的视图之前,请致电socket.join('/category')socket.leave(previousRoom)
  4. 当管理员点击“添加”按钮时,会触发当前会议室中所有用户的事件socket.emit('new category has been added')(例如/category
  5. 我不喜欢我的方法,因为它似乎非常混乱+我要创建一些GLOBAL哈希,这将保留{sid => socket}(以方便访问路由中的套接字),并且不确定如何做得很好。

    我很感激任何帮助,因为我真的迷失了

    编辑: 如果这会有所帮助我将我的代码放在git:https://github.com/matDobek/eatDat上,值得一看的文件:

    1. lib/socketapp
    2. app.js

0 个答案:

没有答案