移植到python的socket.io多进程公告通道
socket.io-announce的Python项目详细描述
用于socket.io redistore的轻量级基础结构广播。 这是从node.js项目dshaw/socket.io-announce移植的。 多亏了@dshaw。
安装
pip install socket.io-announce
在堆栈中的任何位置使用,独立于其他socket.io服务器。
fromannounceimportAnnounceannounce=Announce()announce.emit('status',{'msg':'Going down for maintenance in 15 minutes','countdown':10000})
向所有用户发送。
announce.send('Hello, world!')announce.emit('quote',{'symbol':'APPL','price':5000})
目标Socket.io房间。
announce.send('Yoyo yo!',room='boardroom')announce.emit('tweet',{'id':'1','user':'@dshaw','text':'Keeping things small...'},room='nodeup')
target socket.io命名空间(也包括房间)。
announce=Announce(namespace='/namespace')announce.emit('episode',{'url':'http://www.nodeup.com/twentyfour'},room='nodeup')
自定义JSON序列化
如果在尝试序列化数据类型(如日期/时间/时间增量、十进制、生成器或任何其他类型)时遇到json错误 标准json库不支持这一点,您可能需要使用自定义jsonencoder。
defcustom_json_dumps(data):returnjson.dumps(data,cls=CustomJSONEncoder)announce=Announce(namespace='/namespace',json_dumps=custom_json_dumps)announce.emit('episode',{'date':datetime.datetime.today()},room='nodeup')
许可证
(麻省理工学院许可证)
版权所有(c)2014 Blimp LLC-Giovanni Collazo
特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,以及 允许向其提供软件的人员这样做,但须遵守 以下条件:
上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。
软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。 在任何情况下,作者或版权持有人均不对任何 索赔、损害赔偿或其他责任,无论是在合同诉讼中, 侵权行为或其他,由 软件或软件中的使用或其他交易。