为不同的客户端语言编写对应的websocket实现代码,在不同的语言中使用相同的协议和数据格式进行通信。
示例代码:
Python客户端:
import websocket
import json
def on_message(ws, message):
data = json.loads(message)
#处理接收到的数据
...
def on_error(ws, error):
#处理错误
...
def on_close(ws):
#处理连接关闭
...
def on_open(ws):
#连接建立后发送数据
ws.send(json.dumps({"type": "message", "data": "Hello"}))
if __name__ == "__main__":
ws = websocket.WebSocketApp("ws://localhost:8000/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
Java客户端:
import java.net.URI;
import javax.websocket.*;
@ClientEndpoint
public class WebSocketClient {
@OnOpen
public void onOpen(Session session){
//连接建立后发送数据
session.getBasicRemote().sendText("{\"type\": \"message\", \"data\": \"Hello\"}");
}
@OnMessage
public void onMessage(String message){
//处理接收到的数据
...
}
@OnError
public void onError(Throwable t){
//处理错误
...
}
@OnClose
public void onClose(){
//处理连接关闭
...
}
public static void main(String[] args){
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
try {
container.connectToServer(WebSocketClient.class, new URI("ws://localhost:8000/"));
} catch (Exception e) {
e.printStackTrace();
}
}
}