如果您有多个从同一客户端启动的传输协议,您将如何将其唯一ID绑定在一起?对我来说,我正在使用socket.io和binaryjs。 Socket.io将在发送响应时处理请求和binaryjs。我似乎无法弄清楚如何将它们联系在一起但是要实现这一点,因为每个协议都有自己的方法来确定它的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();'>
服务器:
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)
});
});
答案 0 :(得分:0)
为什么不使用会话cookie。我不确定你是否只使用http / websockets,但如果你是,你可以。如果你谷歌搜索“socket.io会话授权”,Socket.io有例子。