Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 使用PostgreSQL通知避免使项目基础架构复杂化_Django_Postgresql_Asynchronous_Websocket_Push Notification - Fatal编程技术网

Django 使用PostgreSQL通知避免使项目基础架构复杂化

Django 使用PostgreSQL通知避免使项目基础架构复杂化,django,postgresql,asynchronous,websocket,push-notification,Django,Postgresql,Asynchronous,Websocket,Push Notification,我想使用WebSocket广播用户通知,并使用PostgreSQL NOTIFY语法发送它们 我还希望避免在解决方案中引入另一台服务器——可能是Redis、RabbitMQ等 这可行吗?PostgreSQL中的异步侦听是否存在问题?那么,套接字上的侦听将是什么?PostgreSQL不直接支持WebSocket连接,因此您需要一些东西来处理PostgreSQL协议。当然,这将是一个gevent socketio/tornadioserver。好的,所以您真的只需要一个保留PostgreSQL协议的

我想使用WebSocket广播用户通知,并使用PostgreSQL NOTIFY语法发送它们

我还希望避免在解决方案中引入另一台服务器——可能是Redis、RabbitMQ等


这可行吗?PostgreSQL中的异步侦听是否存在问题?

那么,套接字上的
侦听将是什么?PostgreSQL不直接支持WebSocket连接,因此您需要一些东西来处理PostgreSQL协议。当然,这将是一个
gevent socketio
/
tornadio
server。好的,所以您真的只需要一个保留PostgreSQL协议的代理(libpq/psycopg2/PgJDBC/Pg gem/node postgres/随便什么)连接到PostgreSQL并侦听它们,轮询要在套接字上读取的新数据。确切的过程取决于所使用的客户端驱动程序。然后该服务器将websockets消息发送到客户端。顺便说一句,所涉及的“轮询”通常是发送一个空查询,即执行语句
”。如果您使用的是非SSL连接,那么一些客户端驱动程序支持在没有服务器流量的情况下纯本地非阻塞轮询。它们都不支持异步回调函数——这在技术上并非不可能,只是据我所知,还没有人实现过。