我正在构建一个服务器,它充当浏览器和使用websockets的第三方服务之间的代理。一般顺序是
我试图解决的一个问题是断开websocket与服务器的连接 - >第三方服务,只要浏览器的套接字断开连接。
就此而言,我正在考虑维护一个像下面的对象
var thirdPartySockets = {};
每当客户端套接字连接时:
var ServerSocket = connectToThirdParty (clientSocketId, URL);
thirdPartySockets [clientSocketId] = ServerSocket;
connectToThirdParty的代码
var connectToThirdParty = function(clientSocketId, URL){
var client = new WebSocketClient();
client.on('connectFailed', function(err) {
console.log('connection failed')
});
client.on('connect', function(connection) {
connection.on('error', function(err) {
});
connection.on('close', function() {
// attempt reconnection
});
connection.on('message', function(message) {
// send back to client
});
});
client.connect(URL);
return client
}
这里的问题是我试图在浏览器套接字断开连接时断开服务器套接字。我似乎无法访问disconnect
事件中的thirdPartySocket列表对象。
var thirdPartySockets = {};
io.on('connection', function(socket){
socket.on('disconnect', function(){
// how do i access the thidPartySockets object here?
});
});
有没有更好的方法来处理这种情况?