- 博客分类:
需求: 我们需要监控客户端是否已经掉线, 采用的做法是客服端定时发送消息到 socket server. 我们在socket server确认是否已经收到心跳消息,如果超时(timeout)则会剔除相应的客户端。
为此,我们准备在python抽象出原型雏形。熟悉Javascript的可能知道定时器函数
我们在Python(2.7)也可有类似功能: 如下:
伦理片 http://www.dotdy.com/
- def set_interval(func,extraArgs,sec):
- def func_wrapper():
- func(*extraArgs)
- t = threading.Timer(sec, func_wrapper)
- t.start()
- return t
下一步,为每一个客服端连接(session)建立一个AliveThread来处理,第一次客户端连接来的时候,push msg(msgId, timestamp,...); 第二次来的时候,pop(delete )msg and append msg. 为此,有了
MsgManager这样的消息汇总,我们就能在一个monitor function中处理掉线.
为此,我们又需要类似java里面的Vector,ConcurrentHashMap来确保MsgManager线程操作安全。
如下:
好了,剩下的很简单了:
影音先锋电影 http://www.iskdy.com/
需求2: 为了给客服端最快的响应,我们从多个服务端获取信息,最快返回的信息将返回给客户。
为此,我们用 package concurrent: