如何从Java控制台程序连接到WebSocket?

时间:2015-08-28 14:03:04

标签: 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。我看到WebSocketAndroid Application的{​​{1}}相关联。在该示例中,作者使用了example。我搜索了很多但没有找到任何帮助:(。

  1. 是否可以从普通的Java控制台应用程序连接到WebSocket?那怎么办呢?有没有外部库?
  2. 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

回答你的问题#1 ...

客户端库:Jetty

示例:Stack Overflow Example 26452903

但是,我建议可能会重新考虑您可能正在使用的通信协议。您可以使用一些其他协议,根据您使用的解决方案提供最大的好处。只是值得深思。

答案 1 :(得分:1)

EchoClient.java是一个连接到ws://echo.websocket.org的简单控制台应用程序。该应用程序使用 nv-websocket-client 库。在为Java选择WebSocket客户端库时应考虑的内容列于here