前期没有来得及好好总结,现在复习总结一下:
Socket.IO 背后主要的思想是你可以发送和接收想要的任何事件,携带你想要的任何数据。任何可以编码为 JSON 的对象都可以做到,并且也支持二进制数据。
1.Express 初始化 app 作为功能处理器,你可以将它传给 HTTP 服务器。
2.定义一个路由处理器 / ,当我们访问网站主页时就会调用这个处理器。
3.HTTP 服务器监听端口 3000。
通过传递 http(HTTP 服务器)对象初始化了一个 socket.io 的新实例。然后为到来的 socket 监听 connection 事件,并且输入日志到控制台。
这将加载 socket.io-client,创建全局变量 io,并且连接
下一个目标是我们从服务器发送事件给其他用户。
为了发送事件给所有人,Socket.IO 给我们提供了 io.emit:
io.emit('some event', { for: 'everyone' });
如果你想发送一个确定 socket 的消息给所有人,我们有 broadcast 标识:
io.on('connection', function(socket){ socket.broadcast.emit('hi');});
下面是参考:
关于flask_socketio的入门可以看我的上一篇博客
用socketio实现即时通信十分简单,只需要客户端发送用户输入的信息到后端,后端再将此信息广播到所有连接到此命名域的客户端就可以了。
关键就是要在emit中加broadcast=True这一项,如果不加,只有发送信息的客户端能收到消息
Receive:
打开两个网页都连接到http://127.0.0.1:5000/,测试一下,一个网页发送的信息在另一个网页也可以及时收到。一个简陋的多人聊天系统完成了:)