我有一个JavaScript Websockets实现,我想使用一个单例模型,它使用一个Websocket连接来多次调用服务器但具有不同的回调事件处理程序.我的实现工作得很好但是已经注意到一些奇怪的行为,消息被定向到错误的回调处理程序.这是一些代码:
Connection.js文件
var connection = function(){
var _socket = null;
return {
socket : function(){
if (_socket == null){
_socket = new WebSocket("ws://localhost:8081/index.ashx");
_socket.onclose = function(evt){alert('Closed');}
_socket.extraParameter = null;
}
return _socket;
},
send : function(data, callback){
var localSocket = connection.socket();
localSocket.extraParameter = new Date().toString();
localSocket.onmessage = callback;
localSocket.originalDataSent = data;
localSocket.send(data);
}
}
}();
Run Code Online (Sandbox Code Playgroud)
App.js文件
var App = function(){
return {
cpuUtilization : function(evt){
var localSocket = this;
var dateTimeOfRequest = localSocket.extraParameter;
var originalDataSent = localSocket.originalDataSent
var jsonData …Run Code Online (Sandbox Code Playgroud)