2015-04-03 98 views
0

我有一个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

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

+0

好了,感谢您的信息! – 2015-04-03 23:52:53