如何从Java控制台程序连接到WebSocket?
问题描述:
我是Java新手。我创建了一个简单的WebSocket。如何从Java控制台程序连接到WebSocket?
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@ServerEndpoint("/RankixSocket")
public class RankixSocket {
@OnOpen
public void onOpen(Session session) {
try {
session.getBasicRemote().sendText("Connected");
} catch (IOException e) {
e.printStackTrace();
}
}
@OnMessage
public void onMessage(Session session, String message) {
System.out.println("New message : " + message);
try {
session.getBasicRemote().sendText("Message received -> :" + message);
} catch (IOException e) {
e.printStackTrace();
}
}
@OnClose
public void onClose() {
System.out.println("Closed");
}
}
现在我想连接到从控制台应用程序的WebSocket。我见过从Android Application
连接到WebSocket
的example。在那个例子中,作者使用了一个external library。我GOOGLE了很多,但没有发现的有用:(。
- 是否有可能从一个普通的Java控制台应用程序连接到
WebSocket
?那我该怎么办呢?有没有任何外部库?
任何帮助将不胜感激
答
EchoClient.java
是一个简单的控制台应用程序,它连接到ws://echo.websocket.org
。该应用程序使用nv-websocket-client库。在为Java选择WebSocket客户端库时应考虑的内容列于here。
答
要回答你的问题#1 ...... YES
客户端库:!Jetty
例子:Stack Overflow Example 26452903
不过,我会建议重新考虑,也许您可能正在使用的通信协议。您可以利用一些其他协议,根据您所使用的解决方案提供最大的收益。只是思考的食物。
哇,但我怎样才能得到该库的'JAR'版本@Takahiko Kawasaki – theapache64
如果您使用的是Maven或Gradle,请阅读[README.md](https://github.com/TakahikoKawasaki/nv-websocket -client /斑点/主/ README.md)。否则,从[这里]下载一个JAR文件(https://repo1.maven.org/maven2/com/neovisionaries/nv-websocket-client/)。 –