onMessage WebSocket 中的消息处理

Posted

技术标签:

【中文标题】onMessage WebSocket 中的消息处理【英文标题】:Message handling in onMessage WebSocket 【发布时间】:2018-07-24 19:51:33 【问题描述】:

我正在尝试实现一个 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。

谢谢!

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于onMessage WebSocket 中的消息处理的主要内容,如果未能解决你的问题,请参考以下文章

Glassfish websocket OnMessage方法突然退出

不同的 WebSocket“onmessage”处理程序取决于屏幕

C# 创建 websocket - onmessage 函数不起作用

高速公路,离开 onMessage 块

在 Android 中的 Java Websocket 服务器收到消息时,未创建 Toast 消息

如何从javascript客户端onmessage函数发送/读取java ByteBuffer(websocket)