我正在使用 EventMachine 构建一个程序,有时网络较弱的客户端会在我们的程序中触发解除绑定。我想知道如何确定解除绑定功能被触发的原因,以及我是否可以做些什么来帮助这些弱客户。
问问题
586 次
2 回答
1
当连接由于某种原因终止时会调用 Unbind,通常需要重新连接到服务器。
class MyConnection < EM::Connection
def initialize(host, port)
@host, @port = host, port
@retry = 0
end
def self.connect(host, port, timeout)
EM.connect(host, port, self, host, port)
end
def connection_completed
@retry = 0
end
def unbind
if @retry < 3
EM.add_timer(1){ @retry +=1 && reconnect(@host, @port) }
else
fail "Can't reconnect"
end
end
end
于 2013-06-26T21:48:08.673 回答
0
看来您还可以使用“原因”参数定义取消绑定:
def unbind(reason=nil)
end
参考:
https://groups.google.com/forum/#!topic/eventmachine/9HFuXS15HYg https://github.com/eventmachine/eventmachine/issues/362
于 2013-06-26T22:51:02.647 回答