使用socket.io进行路由

时间:2015-01-03 09:14:38

标签: node.js express socket.io

我正在用socket.io写一个快速的app.js,并遇到了一个问题 我无法弄清楚如何使用这些路线。 我希望客户端编写例如localhost:3000/?id=3并根据id获取内容。 但是在socket.io连接事件中,我不知道url或params(或者有没有办法?)

io.on('connection', function (socket) {/*should be something according to the id in the url*/});

直到现在我刚用

检查了id
app.get('/', function (req, res) {
    //req.query.id
});

任何人都知道解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您似乎对使用webSockets的方式感到有些困惑。如果您要发出localhost:3000/?id=3之类的http请求,那么您就不会使用网络套接字。您可以使用Express中的常规路由机制。

创建webSocket连接,然后保持连接。从那时起,您将带有可选数据的消息定义为这些消息的参数,您可以在webSocket上向这两个方向发送消息。 webSocket消息在现有webSocket上发送,而不是在URL上发送。如果需要,您可以创建一条消息,用于将URL从客户端发送到服务器。如果是这种情况,您可以在客户端执行此操作:

socket.emit("sendURL", url);

然后,您将在服务器上侦听"sendURL"消息。