python 利用websocket实现服务器向客户端推送消息(tornado.websocket.WebSocketHandler)

本文通过Python的Tornado库展示了如何利用websocket实现服务器向客户端的消息推送。同时,文章提到了可能遇到的问题,如Nginx代理下webSocket连接超时,以及提供了相关问题的解决链接。
摘要由CSDN通过智能技术生成

废话不多说,直接上代码,详见代码注释.

class UpdateWebSocket(WebSocketHandler,_AccountBaseHandler):
    """websocket代替轮询获取更新的数据
    """
    # 保存连接用户,用于后续推送消息
    all_shop_admins = set()

    #建立连接的时候,把用户保存到字典里面,用于后续推送消息使用 
    def open(self):
        print("new client opened")
        # 初始化
        all_shop_admins.add(self)

   # 关闭连接的时候需要清空连接用户 
    def on_close(self):   
        all_shop_admins.remove(self)

    # 项目中调用方法UpdateWebSocket.send_demand_updates(message)来给用户发送消息
    @classmethod
    def send_demand_updates(cls,message):
        # 给第一个用户推送消息
        all_shop_admins[0].write_message(message)

    def on_message(self,message):
    # 接收客户端发来的消息
        logging.info("got message %r", message)

    # 检查跨域请求,允许跨域,则直接return True,否则自定义筛选条件
    def check_origin(self, origin):
        parsed_origin = urllib.parse.urlparse(origin)
 
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值