在某些时候,需要建立websocket路由,来建立长链接,来实时传输数据,就比如一些聊天应用,就有实时音视频,需要实时传出状态

在sanic框架中支持两种websocket路由方式,有一种是再app中建立,另一种实在蓝图中,但是没有提供类的路由写法,都是通过函数的写法

1.app

from sanic import Sanic
app = Sanic(__name__)

@app.websocket('/feed')
async def feed(request, ws):
    try:
        while True:
            data = 'hello!'
            print('Sending: ' + data)
            await ws.send(data)
            data = await ws.recv()
            print('Received: ' + data)
    except Exception as e:
        print(e)

#app.add_websocket_route(feed, "/feed")
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8009) 

2.blueprint

接口:ws://ip号:8001/api/student/v2/feed

StudentVideoCallBP = Blueprint(__name__, url_prefix='/api/student/v2/')

@StudentVideoCallBP.websocket('/feed')
async def feed(ws):
    try:
        while True:
            data = 'hello!'
            print('Sending: ' + data)
            await ws.send(data)
            data = await ws.recv()
            print('Received: ' + data)
    except Exception as e:
        print(e)


# StudentVideoCallBP.add_websocket_route(feed, "/feed")
View Code

相关文章:

  • 2021-08-19
  • 2022-02-17
  • 2022-01-10
  • 2021-08-18
  • 2022-01-21
  • 2021-07-21
  • 2022-12-23
  • 2021-10-16
猜你喜欢
  • 2022-12-23
  • 2021-12-06
  • 2021-10-17
  • 2021-11-22
  • 2021-11-27
  • 2021-06-12
  • 2021-07-12
相关资源
相似解决方案