Skip to main content

一款基于CheeseAPI的升级款Websocket插件。

Project description

CheeseAPI_Websocket

介绍

一款基于CheeseAPI的升级款Websocket插件,它能够解决在多worker下websocket的通讯问题,前提是需要引入redis。

安装

系统要求:Unix,例如Linux、Mac等;不支持Windows,若有需要请使用Windows的WSL运行程序。

pip install CheeseAPI_Websocket

使用

CheeseAPI_Websocket是CheeseAPI的一款插件,它需要依赖于CheeseAPI才能运行。

默认情况下,它会连接到本地默认端口下的redis db0。

import threading, time

from CheeseAPI import app, WebsocketClient, Response
from CheeseAPI_Websocket import websocket

app.modules.append('CheeseAPI_Websocket') # 加入模块

@app.route.websocket('/')
class Test(WebsocketClient):
    ...

# 创建一个线程,在非协程环境下发送Websocket
@app.handle.server_afterStartingHandle
def test():
    def test0():
        while True:
            websocket.send('/', '你好')
            time.sleep(1)
threading.Thread(target = test, daemon = True).start()

# 在协程环境下发送Websocket
@app.route.post('/websocket')
async def test1():
    await websocket.async_send('/', '世界')
    return Response()

app.run()

请注意下列情况:

  1. 若传输的数据量过大,请使用原生的send方法,以避免为redis带来过大的负担。

  2. 多个不同数据源的服务器连接到同一个redis数据库,会导致websocket消息错乱。

Websocket

from CheeseAPI_Websocket import websocket

websocket.host: str = 'localhost'

连接的redis host。

websocket.port: int = 6379

连接的redis端口。

websocket.db: int = 0

连接的redis数据库。

websocket.send(path: str, message: str | bytes | dict | list, sid: str | List[str] | Literal['*'] = '*')

发送消息,支持广播。

await websocket.async_send(path: str, message: str | bytes | dict | list, sid: str | List[str] | Literal['*'] = '*')

发送消息,支持广播。

websocket.close(path: str, sid: str | List[str] | Literal['*'] = '*')

关闭连接,支持广播。

await websocket.async_close(path: str, sid: str | List[str] | Literal['*'] = '*')

关闭连接,支持广播。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cheeseapi_websocket-1.1.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

cheeseapi_websocket-1.1.1-py2.py3-none-any.whl (4.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cheeseapi_websocket-1.1.1.tar.gz.

File metadata

  • Download URL: cheeseapi_websocket-1.1.1.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for cheeseapi_websocket-1.1.1.tar.gz
Algorithm Hash digest
SHA256 2f0facee0b1cb88ebea8717996ffd4f781bcf3dc63c76faba9d84beed31d0f72
MD5 604d5856f53f98dc8805b978181bc76f
BLAKE2b-256 2e30596ccfc9d98ad3d405f98febcbcda5e2c3a6b9948a15dff03bd60cee59a0

See more details on using hashes here.

File details

Details for the file cheeseapi_websocket-1.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for cheeseapi_websocket-1.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 375e08365e94313890ee9a437d42a8d3547833e3e64fc09b34b6cd59613af226
MD5 add086d51979434167a9db2e79b25b8c
BLAKE2b-256 499ca2274cfaf7a3587c943fb57ced22cb49a2cfef31bced8e96615b1be58223

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page