zoukankan      html  css  js  c++  java
  • Sanic官翻-WebSocket

    WebSocket

    Sanic在websocket之上提供了易于使用的抽象。Sanic支持websocket版本7和8。

    设置WebSocket

    from sanic import Sanic
    from sanic.response import json
    from sanic.websocket import WebSocketProtocol
    
    app = Sanic("websocket_example")
    
    @app.websocket('/feed')
    async def feed(request, ws):
        while True:
            data = 'hello!'
            print('Sending: ' + data)
            await ws.send(data)
            data = await ws.recv()
            print('Received: ' + data)
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=8000, protocol=WebSocketProtocol)
    

    或者,可以使用app.add_websocket_route方法代替装饰器:

    async def feed(request, ws):
        pass
    
    app.add_websocket_route(feed, '/feed')
    

    调用WebSocket路由的处理程序时,将请求作为第一个参数,将WebSocket协议对象作为第二个参数。协议对象具有sendrecv方法,分别用于发送和接收数据。

    您可以通过app.config设置自己的WebSocket配置,例如

    app.config.WEBSOCKET_MAX_SIZE = 2 ** 20
    app.config.WEBSOCKET_MAX_QUEUE = 32
    app.config.WEBSOCKET_READ_LIMIT = 2 ** 16
    app.config.WEBSOCKET_WRITE_LIMIT = 2 ** 16
    app.config.WEBSOCKET_PING_INTERVAL = 20
    app.config.WEBSOCKET_PING_TIMEOUT = 20
    

    如果在ASGI模式下运行,这些设置将没有影响。

    Configuration部分中找到更多信息。

  • 相关阅读:
    JavaWeb 内存马一周目通关攻略
    Android应用攻与防
    JavaWeb 内存马二周目通关攻略
    Mysql 5.7 windows安装 zip安装
    [JavaScript] 单例模式
    [JavaScript] 策略模式
    Leecode刷题笔记
    Java面经
    一些开源项目在ARM上的移植
    ffmpeg和SDL的多媒体编程(二)输出到屏幕
  • 原文地址:https://www.cnblogs.com/fhkankan/p/14763634.html
Copyright © 2011-2022 走看看