簡體   English   中英

在Jetty中建立WebSocket客戶端連接?

[英]Establishing a WebSocket client connection in Jetty?

我正在按照本教程建立與服務器的WebSocket連接: http : //www.eclipse.org/jetty/documentation/current/jetty-websocket-client-api.html

代碼(與教程相同):

import java.net.URI;
import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
import org.eclipse.jetty.websocket.client.WebSocketClient;

/**
 * Example of a simple Echo Client.
 */
public class SimpleEchoClient {

    public static void main(String[] args) {
        String destUri = "ws://echo.websocket.org";
        if (args.length > 0) {
            destUri = args[0];
        }
        WebSocketClient client = new WebSocketClient();
        SimpleEchoClient socket = new SimpleEchoClient();

        try {
            client.start();
            URI echoUri = new URI(destUri);
            ClientUpgradeRequest request = new ClientUpgradeRequest();
            client.connect(socket, echoUri, request);
            System.out.printf("Connecting to : %s%n", echoUri);
           // socket.awaitClose(5, TimeUnit.SECONDS);
        } catch (Throwable t) {
            t.printStackTrace();
        } finally {
            try {
                client.stop();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}

錯誤:

2014-08-07 21:49:00.346:INFO::main: Logging initialized @86ms
org.eclipse.jetty.websocket.api.InvalidWebSocketException:
SimpleEchoClient is not a valid WebSocket object.  
Object must obey one of the following rules:  
(1) class implements org.eclipse.jetty.websocket.api.WebSocketListener or  
(2) class is annotated with @org.eclipse.jetty.websocket.api.annotations.WebSocket

at org.eclipse.jetty.websocket.common.events.EventDriverFactory.wrap(EventDriverFactory.java:145)
at org.eclipse.jetty.websocket.client.WebSocketClient.connect(WebSocketClient.java:200)
at org.eclipse.jetty.websocket.client.WebSocketClient.connect(WebSocketClient.java:144)
at SimpleEchoClient.main(SimpleEchoClient.java:31)

我不太確定我導入的jar文件出了什么問題。 也許是錯了嗎? 我正在使用: http : //mvnrepository.com/artifact/org.eclipse.jetty.websocket/websocket-client/9.2.2.v20140723

當然,肯定有一種更簡單的方法可以通過Jetty Websocket建立連接並開始接收數據嗎?

看來文檔與您使用的當前版本已經過時。 嘗試回滾到更穩定的9.2.x版本,例如:

<dependency>
    <groupId>org.eclipse.jetty.websocket</groupId>
    <artifactId>websocket-client</artifactId>
    <version>9.2.0.RC0</version>
</dependency>

正如Kayman在評論中所解釋的那樣,您對套接字處理程序實現的問題,請使用此處介紹的最新版本以及一個示例(您使用過但正確)進行了解釋。http://www.eclipse.org/jetty/documentation/current/jetty-websocket -client-api.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM