Javascript 将从同一实例启动的多个套接字连接捆绑在一起

Javascript 将从同一实例启动的多个套接字连接捆绑在一起,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,如果您有多个从同一个客户端启动的传输协议,您将如何将它们的唯一ID绑定在一起?对我来说,我使用的是socket.io和binaryjs。在发送响应时,Socket.io将处理请求和二进制JS。我似乎不知道如何将它们联系在一起来实现这一点,因为每个协议都有自己的确定其id的方法。因此,当我启动一个新客户端时,每个协议的实例都没有一个公共标识符。你是如何解决这个问题的 客户: <script src='/binary.js'></script> <script src=

如果您有多个从同一个客户端启动的传输协议,您将如何将它们的唯一ID绑定在一起?对我来说,我使用的是socket.io和binaryjs。在发送响应时,Socket.io将处理请求和二进制JS。我似乎不知道如何将它们联系在一起来实现这一点,因为每个协议都有自己的确定其id的方法。因此,当我启动一个新客户端时,每个协议的实例都没有一个公共标识符。你是如何解决这个问题的

客户:

<script src='/binary.js'></script>
<script src='/socket.io/socket.io.js'></script>
<script>
    var socket=io.connect('http://127.0.0.1:3000');
    var client=new BinaryClient('ws://127.0.0.1:3001');
    function doSomething() {
        socket.emit('someEvent',{success:'someData'});
    }
</script>
<input type='submit' value='Submit' onClick='doSomething();'>

为什么不使用会话cookie呢。我不确定你是否只是在使用http/websockets,但如果你是,你可以。如果你在谷歌上搜索“Socket.io会话授权”,Socket.io有一些例子。

我会使用一个离线事件发射器在一个地方订阅两个API的回调。我并没有真正听从你的建议。你能详细说明一下吗?
binjsConnections = {}
binjs.on('connection', function(binclient) {
    binjsConnections[binclient] = {client: binclient}
});

io.sockets.on('connection', function(ioclient) {

    // process data from io socket
    ioclient.on('someEvent', function(data) {
        // transport results over binjs socket
        binjsConnections[binclient].client.send(data)
    });
});