Flask-SocketIO:在节点之间传递事件(Redis-Adapter)
Flask-SocketIO: Passing events between nodes (Redis-Adapter)
在节点平衡器后面运行的应用程序中使用 SocketIO
时,官方文档说明了在这些节点之间传递事件的方式(使用 SocketIO-Redis
):
const io = require('socket.io')(3000);
const redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
然而,当使用Flask-SocketIO
(或只是不使用Node.js
)时,JavaScript(单机)版本的SocketIO
将像这样使用:
<script src="socket.io.js"></script>
<script>
var socket = io();
</script>
如何在使用 SocketIO
-JS 独立版本时实现 Redis-Adapter
?没有Node.js
可以使用类似的东西吗?
我尝试使用 Browserify
将 SocketIO-Redis
转换为 JavaScript,但是 socket.adapter()
和 io.adapter()
都没有函数。无论如何,文件太大了。
How would one implement a Redis-Adapter when using the SocketIO-JS-standalone version?
我不知道你为什么在这里使用“独立”。我认为你的意思是 JavaScript Socket.IO 客户端,它与 Redis 没有任何关系,无论你使用什么 Socket.IO 服务器。
Redis 支持由服务器实现。对于 Node Socket.IO 服务器,您使用 Redis-Adapter 项目。对于 Python Socket.IO 服务器,Redis 的支持来自 built-in,您只需要在创建服务器对象时添加 message_queue
参数,如 the docs.
在节点平衡器后面运行的应用程序中使用 SocketIO
时,官方文档说明了在这些节点之间传递事件的方式(使用 SocketIO-Redis
):
const io = require('socket.io')(3000);
const redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
然而,当使用Flask-SocketIO
(或只是不使用Node.js
)时,JavaScript(单机)版本的SocketIO
将像这样使用:
<script src="socket.io.js"></script>
<script>
var socket = io();
</script>
如何在使用 SocketIO
-JS 独立版本时实现 Redis-Adapter
?没有Node.js
可以使用类似的东西吗?
我尝试使用 Browserify
将 SocketIO-Redis
转换为 JavaScript,但是 socket.adapter()
和 io.adapter()
都没有函数。无论如何,文件太大了。
How would one implement a Redis-Adapter when using the SocketIO-JS-standalone version?
我不知道你为什么在这里使用“独立”。我认为你的意思是 JavaScript Socket.IO 客户端,它与 Redis 没有任何关系,无论你使用什么 Socket.IO 服务器。
Redis 支持由服务器实现。对于 Node Socket.IO 服务器,您使用 Redis-Adapter 项目。对于 Python Socket.IO 服务器,Redis 的支持来自 built-in,您只需要在创建服务器对象时添加 message_queue
参数,如 the docs.