gpt4 book ai didi

Java WebSocket : How can I test a Server WebSocket endpoint without writing a client

转载 作者:行者123 更新时间:2023-12-01 19:39:13 32 4
gpt4 key购买 nike

我正在使用 Glassfish 服务器来托管一个使用 javax.websocket 的基本 Web Socket 服务器。

这是服务器代码:

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

@ServerEndpoint("/websocket/server")
public class WebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println(String.format("Connection Established::%s", session.getId()));
RemoteEndpoint.Basic remoteEndpoint = session.getBasicRemote();
session.addMessageHandler(new ServerMessageHandler(remoteEndpoint));
}

@OnClose
public void onClose(Session session) {
System.out.println(String.format("Connection closed::%s", session.getId()));
}

@OnError
public void onError(Throwable t) {
System.out.println(t.toString());
}

@OnMessage
public void onMessage(Session session, String message) {
System.out.println(String.format("Received message::%s - sessionId::%s", message, session.getId()));
}

private class ServerMessageHandler implements MessageHandler.Whole<String> {
private RemoteEndpoint.Basic _remoteEndpoint;

ServerMessageHandler(RemoteEndpoint.Basic remoteEndpoint) {
this._remoteEndpoint = remoteEndpoint;
}
public void onMessage(String message) {
try {
_remoteEndpoint.sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

这是运行服务器的控制台应用程序:

    import org.glassfish.tyrus.server.Server;

import javax.websocket.DeploymentException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
public static void main(String[] args) {
runServer();
}

private static void runServer() {
Server server = null;
try {
server = new Server("localhost", 8080, "/websocket", null, WebSocketServer.class);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
server.start();
System.out.println("Please press a key to stop the server.");
reader.readLine();
} catch (IOException e) {
throw new RuntimeException(e);
} catch (DeploymentException e) {
throw new RuntimeException(e);
} finally {
if (server != null) {
server.stop();
}
}
}
}

我的问题是,当我运行这个控制台应用程序并且它运行 Websocket 服务器时,测试端点以验证它是否正常工作甚至调试服务器代码(onOpen、onClose 等)的最佳方法是什么。我试图使用 Postman 来访问 ws:\localhost:8080\websocket\server,但这不起作用。我对 Web Sockets 完全陌生,因此由于缺乏该技术的经验和知识,我的想法可能是错误的。

谢谢。

最佳答案

Postman不支持,但是WebSocket King提供了专门为 Web 套接字设计的类似接口(interface)。

关于Java WebSocket : How can I test a Server WebSocket endpoint without writing a client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956571/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com