首页 > 解决方案 > onMessage WebSocket 中的消息处理

问题描述

我正在尝试实现 WebSocket 客户端。

我的代码在这里:

import org.json.JSONObject;
import javax.websocket.*;
import java.io.IOException;
public class MyClientEndpoint extends Endpoint {
private Session session;

@Override
public void onOpen(Session session, EndpointConfig endpointConfig) {
    System.out.println("Web socket opened");
    this.session = session;
    this.session.addMessageHandler(new MessageHandler.Whole<String>() {

        public void onMessage(String message) {
            System.out.println("!!!!!!!!!!!!!!! Retrieved: " + message);
            JSONObject jsonResponse = new JSONObject(message);
            String user = jsonResponse.get("user").toString();
            System.out.println("!!!!!!!!!!!!!!! The User: " + user);
        }
    });
}

public void sendMessage(String message) throws IOException {
    this.session.getBasicRemote().sendText(message);
}
}

问题出在onMessage(String message)方法上,因为在打印消息后,我似乎无法处理消息以创建String user对象。我该如何实现呢?

我正在使用 Glassfish Tyrus。

谢谢!

标签: javawebsocketjava-websockettyrus

解决方案


我找到了问题所在。在JSONObject我创建的情况下,user密钥不在第一行,所以我必须使用另一个密钥才能访问user密钥。问题是当我尝试访问user密钥时,我没有收到任何异常。


推荐阅读