我使用WebSocket,Javascript(客户端)和Python(服务器)编写简单的聊天室。我阅读了一些教程和文档,这是我的两个问题。
1)在JS方面,我必须做以下事情是正常的:
ws.emit('message', 'hello')
没有什么东西"更少的低级"比如ws.emit('username_change', 'John')
或
users = set()
@get('/websocket', apply=[websocket])
def chat(ws):
users.add(ws)
while True:
msg = ws.receive()
for u in users:
u.send(msg)
users.remove(ws)
?
2) 在服务器端(使用Python + Bottle框架)是标准的:
for
我发现自己需要维护一个用户列表,以及将消息逐个发送给所有.broadcast()
循环用户的事实,我觉得它很低级别。我认为有一个serialize()
功能允许自动向所有连接的用户发送消息。
我是否遗漏了Websocket风景中的内容?
答案 0 :(得分:1)
socket.io是一个基于webSockets构建的更高级别的界面。它提供了许多附加功能,但最重要的是消息传递方案,您可以执行此操作来发送数据:
socket.emit("someMsg", someData);
而且,这是为了接收:
socket.on("someMsg", function(data) {
// process incoming data here
});
这是一个部分功能列表,socket.io添加在webSocket之上:Moving from socket.io to raw websockets?