2

所以我已经在我的服务器上实现了彗星套接字,并且能够很好地将数据推送到浏览器。但是我想做的是在彗星服务器退出时在 javascript/jquery 中捕获。

我有我的 iframe:

<div id="iframeDiv" style="visibility:hidden; height:0px">
    <iframe id="comet" src="/messageSocket?-3711886712169888393"></iframe>
</div>

我有我的 javascript 来处理新消息:

// Comet Server Processes actions
var messageReceived = function(message) {
var commandType = message[1];
switch (commandType) {
    case "1":
        processActionData(message);
        break;
    ...
    default:
        break;
}

}

但例如让我们说连接因某种原因而断开?我怎样才能把它带回来?例如,如果托管网站的本地服务器关闭并重新启动,我想在客户端上捕获超时?然后重新加载页面。我该怎么做呢?我是否需要创建一个循环来发出 ajax ping 请求以确定连接是否仍然存在?当彗星插座死亡时,有没有更好的方法来捕捉?

4

1 回答 1

1

我不确定彗星协议是如何工作的,但你可以做的一件事是每隔几秒钟发送一条 ping 消息。如果服务器在 10 秒内没有发送 ping,idk,则您认为服务器断开了连接。

我以前在客户端-服务器应用程序中使用过这种方法。

于 2012-10-22T23:04:36.117 回答