如何使用套接字与 socketio 交互
How to interact with socketio using sockets
我有一个 socketio 服务器 运行,我想与它进行交互 Java。我知道 there is an official client,但我无法让它为常规 java 项目工作,所以我想看看我是否可以通过常规套接字与它交互。这是我目前所拥有的:
Socket sock = new Socket("127.0.0.1", 5000);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(sock.getInputStream()));
PrintWriter outToServer = new PrintWriter(sock.getOutputStream(), true);
outToServer.println("connect");
while(true){
while(inFromServer.ready()){
inFromServer.readLine();
}
}
它似乎可以连接,但我没有从客户端或服务器收到任何响应。我究竟需要发送什么才能从服务器获得响应?我会得到什么信息?
socket.io 是它自己在 webSockets 之上的扩展,它是在普通套接字之上的自己的协议。
您必须同时实施 webSockets 和 socket.io 才能与 socket.io 服务器通信。除非这是一个仅供学习的学术练习,否则我强烈建议您获得一个在 Java 中运行的 socket.io 库并使用它,因为它将为您节省大量时间、问题和错误。
否则,您需要研究多个规范并实施多个协议。仅供参考,websocket 连接以升级到 webSocket 协议的 HTTP 请求开始。一旦建立了 webSocket 连接,就可以通过它发送 socket.io 消息。
对于 webSocket 协议的基础知识,我发现这本书很有用:https://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_servers
我有一个 socketio 服务器 运行,我想与它进行交互 Java。我知道 there is an official client,但我无法让它为常规 java 项目工作,所以我想看看我是否可以通过常规套接字与它交互。这是我目前所拥有的:
Socket sock = new Socket("127.0.0.1", 5000);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(sock.getInputStream()));
PrintWriter outToServer = new PrintWriter(sock.getOutputStream(), true);
outToServer.println("connect");
while(true){
while(inFromServer.ready()){
inFromServer.readLine();
}
}
它似乎可以连接,但我没有从客户端或服务器收到任何响应。我究竟需要发送什么才能从服务器获得响应?我会得到什么信息?
socket.io 是它自己在 webSockets 之上的扩展,它是在普通套接字之上的自己的协议。
您必须同时实施 webSockets 和 socket.io 才能与 socket.io 服务器通信。除非这是一个仅供学习的学术练习,否则我强烈建议您获得一个在 Java 中运行的 socket.io 库并使用它,因为它将为您节省大量时间、问题和错误。
否则,您需要研究多个规范并实施多个协议。仅供参考,websocket 连接以升级到 webSocket 协议的 HTTP 请求开始。一旦建立了 webSocket 连接,就可以通过它发送 socket.io 消息。
对于 webSocket 协议的基础知识,我发现这本书很有用:https://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_servers