onMessage WebSocket 中的消息处理
Message handling in 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。
谢谢!
我找到问题所在了。在我创建的 JSONObject
中,user
键不在第一行,因此我必须使用另一个键才能访问 user
键。问题是,当我尝试访问 user
键时,我没有收到任何异常。
我正在尝试实现 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。
谢谢!
我找到问题所在了。在我创建的 JSONObject
中,user
键不在第一行,因此我必须使用另一个键才能访问 user
键。问题是,当我尝试访问 user
键时,我没有收到任何异常。