2016-05-13 157 views
-1

我是django-websocket-redis的新手,正常情况下我遇到了一些问题。检测客户端的redis websocket是否发生重新连接

我建立了从客户端到服务器的通信,反之亦然using Websockets for Redis

我想检测当客户端从服务器(连接被关闭和/或再次打开之意)reconnecteddisconnected,使我实现了一个机制,其中客户端负责问:“我错过了什么“当他们重新连接时,然后查询他们错过的数据。

目前我的客户端代码是这样的(fiddle here)。 我可以检测到第一次建立连接的时间,但不会在websocket连接断开并重新连接时检测到连接。

任何想法,我该怎么做?

+0

如果事情不太清楚,请询问 –

+0

您可以使用标志一旦连接断开,您就可以设置它。重新连接时,您可以检查标志并确定连接是否断开或重新连接。 –

+0

你的建议是有道理的(当然),事情是,当服务器断开连接时,我没有收到“警报”。这是一个屏幕截图,让事情变得更轻松http://prntscr.com/b3jpkv –

回答

1

问题是你设置它的函数名不应该是on_connecting()而应该只是函数名称on_connecting

下面是代码,用下面的代码替换你的代码,并检查是否有效。

var ws4redis = WS4Redis({ 
    uri: '{{ WEBSOCKET_URI }}foobar?subscribe-broadcast&publish-broadcast&echo', 
    receive_message: receiveMessage, 
    connecting: on_connecting, 
    connected: on_connected, 
    error: on_error, 
    disconnected: on_disconnected, 
    close: on_close, 
    open: on_open, 
}); 

当你写on_connecting()当WS4redis是被初始化函数获取调用这就是为什么你看到控制台日志中的所有事件

+0

@Paschalidis:让我知道,如果上述解决方案的作品。 Boz我无法实际运行和验证。 –

+0

我曾经有没有括号的功能,但没有触发任何功能。奇怪的权利? –

+0

@PaschalidisChristos:当你放置括号时,它是函数调用,当你只使用函数名时,你分配了一旦发生事件就会被调用的函数。在你的情况下,diconnected事件。 –

相关问题