如何使用套接字与socketio交互

时间:2015-04-03 23:37:24

标签: java node.js sockets socket.io

我有一个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();
    }
}

它似乎已连接,但我无法从客户端或服务器获得任何响应。我需要发送什么才能从服务器获得响应?我会得到什么信息?

1 个答案:

答案 0 :(得分:1)

socket.io是webSockets上自己的扩展,它是一个普通套接字上的自己的协议。

您必须同时实现webSockets和socket.io才能与socket.io服务器通信。除非这是一个仅用于学习的学术练习,否则我强烈建议您使用Java工作的socket.io库并使用它,因为它将为您节省大量时间,问题和错误。

否则,您有多个要学习的规范和要实现的多个协议。仅供参考,websocket连接以HTTP请求开始,该请求已升级到webSocket协议。一旦建立了webSocket连接,就可以通过它发送socket.io消息。

对于webSocket协议的基础知识,我发现这是一个有用的读物​​:https://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_servers