我决定测试大气框架如何与共享websocket连接一起工作(在浏览器标签之间共享)。
为此我在客户端使用了样本chat并进行了一些修改:
我创建请求作为函数(因此它可以传递到大气层内的回调列表):
var request = function() {};
使用共享连接我将相应的属性设置为true(参见link to docs):
request.uuid = $.atmosphere.guid();
request.url = '${url}';
request.contentType = "application/json";
request.transport = 'websocket';
request.fallbackTransport = 'long-polling';
request.shared = true;
request.trackMessageLength = true;
request.reconnect = true;
request.connectTimeout = -1;
request.reconnectInterval = 5000;
request.timeout = 300000;
request.maxRequest = -1;
我将此请求传递给大气
subsocket = $.atmosphere.subscribe(request, request, request);
在此之后一切正常(每次调用时都会调用onMessage回调)除了一件重要的事情:对于使用共享已打开的websocket连接的其他打开的选项卡,根本不会调用onMessage回调。因此它使该功能无用,因为我无法使用它。
有人可以帮我解决这个问题吗?我相信我做错了什么,但我真的需要你的帮助。