一款基于CheeseAPI的升级款Websocket插件。
Project description
CheeseAPI_Websocket
介绍
一款基于CheeseAPI的升级款Websocket插件,它能够解决在多worker下websocket的通讯问题,前提是需要引入redis。
安装
目前仅保证支持3.11及以上的python。
pip install CheeseAPI_Websocket
对应CheeseAPI版本:
版本 | CheeseAPI版本 |
---|---|
1.0.3 | 1.3.* |
1.0.2 | 1.2.* |
1.0.1 | 1.1.* |
1.0.0 | 1.0.* |
使用
CheeseAPI_Websocket是CheeseAPI的一款插件,它需要依赖于CheeseAPI才能运行。
import threading, time
from CheeseAPI import app, WebsocketClient, Response
from CheeseAPI_Websocket import websocket
app.modules.append('CheeseAPI_Websocket') # 加入模块
websocket.init() # 初始化redis连接
@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()
if __name__ == '__main__':
app.run()
若传输的数据量过大,请使用原生的send方法,以避免为redis带来过大的负担。
Websocket
from CheeseAPI_Websocket import websocket
websocket.init(host: IPv4 = app.server.host, port: Port = 6379, db: NonNegativeInt = 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cheeseapi_websocket-1.0.4.tar.gz
.
File metadata
- Download URL: cheeseapi_websocket-1.0.4.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66be7724b9ef9158cf5731989c62de7f90ac25b52090e71cd6b4968cea425b60 |
|
MD5 | c127b8dfcc24645afab30174867265e0 |
|
BLAKE2b-256 | 2ca7114573f38ff2978016d032ba9c6ff90cf3a0ea69c3a57120b501533c6b96 |
File details
Details for the file cheeseapi_websocket-1.0.4-py2.py3-none-any.whl
.
File metadata
- Download URL: cheeseapi_websocket-1.0.4-py2.py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f18d415bb71fefc770a52d14daaa78f842379a0167e60572b3bf08d4ff554f6 |
|
MD5 | 95ef8bf88d8b29f4674dc9e262984c20 |
|
BLAKE2b-256 | 6fb82f387a7b05668e9f13abf0653ef210da28c322b035f228008743dff4fb63 |