使用 socket.io 进行路由

Routing with socket.io

我正在用 socket.io 写一个快递 app.js,遇到了一个问题。
我不知道如何使用路线。 我希望客户端写例如 localhost:3000/?id=3 并根据 id 获取一些东西。 但是在 socket.io 连接事件中,我不知道 url 或参数(或者有办法吗?)

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

到目前为止我只是用

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

有人知道解决这个问题的方法吗?

谢谢!

看来您可能对如何使用 webSockets 有点困惑。如果你想发出一个 http 请求,比如 localhost:3000/?id=3,那么你就不要使用 webSockets。您使用 Express 中的常规路由机制。

一个 webSocket 连接被创建并持续存在。从那时起,您将带有可选数据的消息定义为这些消息的参数,并且您可以在 webSocket 上向任一方向发送这些消息。 webSocket 消息在现有的 webSocket 上发送,而不是 URL。如果需要,您可以创建一条消息,用于从客户端向服务器发送 URLs。如果是这样,您可以在客户端中执行此操作:

socket.emit("sendURL", url);

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