public void onMessage(String message) { log.debug("【websocket消息】收到客户端消息:" + message); JSONObject obj = new JSONObject(); if (Validator.isNotNullOrEmpty(message) && JSONUtil.isJson(message)) { JSONObject jsonObject = JSONObject.parseObject(message); String cmd = jsonObject.getString("cmd"); String msgTxt = jsonObject.getString("msgTxt"); String deviceNo = jsonObject.getString("deviceNo"); if ("heartcheck".equals(cmd)) { obj.put("cmd", "heartcheck"); obj.put("msgTxt", String.format("心跳响应:%s", msgTxt)); } else if ("outpatientReception".equals(cmd)) { List<List<String>> list = this.receptionWaitingService.list(deviceNo); obj.put("cmd", "outpatientReception"); obj.put("msgTxt", JSONObject.toJSONString(list)); } this.pushMessage(deviceNo, obj.toJSONString()); } }
时间: 2024-01-10 07:02:29 浏览: 146
简单实现了websocket功能:websocket客户端、winformsocket客户端
这段代码是一个 Java 中 WebSocket 消息处理的方法。当客户端发送消息时,会触发该方法,对接收到的消息进行解析和处理。首先判断消息不为空且为 JSON 格式,然后根据消息中的 cmd 字段的值进行不同的处理逻辑。当 cmd 为 "heartcheck" 时,返回一个心跳响应;当 cmd 为 "outpatientReception" 时,查询数据库列表信息,并将结果封装为 JSON 格式返回。最后,调用 pushMessage 方法将处理后的消息推送给对应的设备。
需要注意的是,该代码中使用了阿里巴巴的 fastjson 库来对 JSON 数据进行解析和封装,需要在项目中添加该依赖。
阅读全文