【发布时间】:2012-05-12 15:12:45
【问题描述】:
我正在使用 Express 开发具有聊天功能(由 Socket.IO 提供支持)的多页 Web 应用程序。用户可以邀请其他人加入私人共享聊天室(也有其他组件,如共享绘图板)。我想在完成邀请交易后将两个用户(邀请者和被邀请者)重定向到不同的 URL。
由于 socket.io 无权访问我的路由的请求和响应对象,我试图将我的 socket.io 实例传递给我的路由处理。除了页面刷新时重复事件处理程序堆积的问题之外,Express 在响应已经发送后尝试进行重定向时会引发错误(这是有道理的)。
似乎实现此目的的唯一方法是在客户端上进行重定向,并将新的聊天室 URL 从 Socket.IO 传递给每个客户端。但是,依赖客户端进行状态转移似乎太脆弱了。
还有其他选择吗?实现我所追求的最佳方式是什么?
【问题讨论】: