基于websockets和aioredis的websocket api上的redis
redis-websocket-api的Python项目详细描述
一个可扩展的redis over websocket api,位于websockets和aioredis之上。
安装
对于基本功能:
pip install redis_websocket_api
使用地理扩展(按扩展、投影转换过滤消息):
pip install redis_websocket_api[geo]
服务器端使用
像这样启动WebsocketServer
:
from aioredis import create_redis_pool
from redis_websocket_api import WebsocketServer
REDIS_ADDRESS = ('localhost', 6379)
WebsocketServer(
redis=loop.run_until_complete(create_redis_pool(REDIS_ADDRESS)),
subscriber=loop.run_until_complete(create_redis_pool(REDIS_ADDRESS)),
read_timeout=30,
keep_alive_timeout=120,
).listen(
host='localhost',
port=8000,
channel_names=('public_channel_1', 'public_channel_2'),
)
查看examples/demo.py
以获取GeoCommandsMixin
的示例。
补充。
临床用药
WebsocketHandler
默认功能为web客户端提供以下接口 (期望通过WebSocket连接的请求):
GET key
转换为hvals key
GET key hkey
转换为hget key hkey
SUB key
将websocket订阅到redis通道(使用单个redis 所有客户端的连接池)DEL key
从频道取消订阅客户端PING
引起PONG
响应(以避免超时)
添加了GeoCommandsMixin
的WebsocketHandler
子类
通过添加GeoCommandsMixin
,web客户端可以使用
BBOX left bottom right top
在此框中仅接收geojson功能 加上所有无效的geojson消息PROJECTION epsg:number
导致所有未来的geojson特性被转换 到给定的投影
有关如何使用扩展的WebsocketHandler
子类,请参见examples/demo.py
。
geo命令目前仅限于LineString
、Polygon
和Point
。
几何学
建立自己的协议
使用上面列出的命令从客户端到服务器进行通信是
完全混合和添加到
WebsocketHandlerBase
。