From b85d1d0b0a33190fc820adf4af45f98499b274cf Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 05 八月 2025 22:46:57 +0800 Subject: [PATCH] 提交推送服务 --- MessagePushTravel/src/main/java/com/sinata/push/util/applets/WebSocketHandler.java | 34 ++++++++++++++++++++++++---------- 1 files changed, 24 insertions(+), 10 deletions(-) diff --git a/MessagePushTravel/src/main/java/com/sinata/push/util/applets/WebSocketHandler.java b/MessagePushTravel/src/main/java/com/sinata/push/util/applets/WebSocketHandler.java index 5d3b425..d4843ce 100644 --- a/MessagePushTravel/src/main/java/com/sinata/push/util/applets/WebSocketHandler.java +++ b/MessagePushTravel/src/main/java/com/sinata/push/util/applets/WebSocketHandler.java @@ -1,6 +1,7 @@ package com.sinata.push.util.applets; import com.alibaba.fastjson.JSONObject; +import com.sinata.push.util.SpringUtil; import com.sinata.push.util.echo.Method; import com.sinata.push.util.echo.NettyChannelMap; import com.sinata.push.util.echo.NettyMsg; @@ -15,6 +16,7 @@ import io.netty.handler.timeout.IdleState; import io.netty.handler.timeout.IdleStateEvent; import io.netty.util.CharsetUtil; +import org.springframework.data.redis.core.StringRedisTemplate; import java.util.HashMap; @@ -23,7 +25,9 @@ //用于websocket握手的处理类 private WebSocketServerHandshaker handshaker; - private static final String WEB_SOCKET_URL = "wss://localhost:8808/websocket"; + private static final String WEB_SOCKET_URL = "ws://localhost:8888/websocket"; + +// private NettyWebSocketController nettyWebSocketController = SpringUtil.getObject(NettyWebSocketController.class); @@ -73,8 +77,13 @@ } private void handleHttpRequest(ChannelHandlerContext ctx, FullHttpRequest req) { + HttpHeaders headers = req.headers(); + headers.names().forEach(name -> { + System.out.println(name + ":" + headers.get(name)); + }); // Http解码失败,向服务器指定传输的协议为Upgrade:websocket if(!req.getDecoderResult().isSuccess() || !("websocket").equals(req.headers().get("Upgrade"))){ + System.out.println("Http解码失败"); sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_REQUEST)); return; } @@ -83,9 +92,11 @@ // 根据工厂类和HTTP请求创建握手类 handshaker = wsFactory.newHandshaker(req); if (handshaker == null) { + System.out.println("不支持websocket"); // 不支持websocket WebSocketServerHandshakerFactory.sendUnsupportedWebSocketVersionResponse(ctx.channel()); } else { + System.out.println("通过它构造握手响应消息返回给客户端"); // 通过它构造握手响应消息返回给客户端 handshaker.handshake(ctx.channel(), req); } @@ -112,18 +123,21 @@ //给连接的客户端返回数据 //返回心跳 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("code", 200); - jsonObject.put("method", Method.ok); - jsonObject.put("msg", "SUCCESS"); - jsonObject.put("data", new JSONObject()); - TextWebSocketFrame tws = new TextWebSocketFrame(jsonObject.toJSONString()); +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("code", 200); +// jsonObject.put("method", Method.ok); +// jsonObject.put("msg", "SUCCESS"); +// jsonObject.put("data", new JSONObject()); +// TextWebSocketFrame tws = new TextWebSocketFrame(jsonObject.toJSONString()); // ctx.channel().writeAndFlush(tws); - - new NettyWebSocketController().JudgeOperation(ctx,requestmsg);//小程序心跳处理 + String s = NettyMsg.setMsg(Method.ok, new HashMap<String, Object>()); + ctx.writeAndFlush(Unpooled.copiedBuffer((s).getBytes())); + + +// nettyWebSocketController.JudgeOperation(ctx,requestmsg);//小程序心跳处理 // 群发服务端心跳响应 - Global.group.writeAndFlush(new TextWebSocketFrame((tws).text())); +// Global.group.writeAndFlush(new TextWebSocketFrame((tws).text())); } private void sendHttpResponse(ChannelHandlerContext ctx, FullHttpRequest req, FullHttpResponse res) { -- Gitblit v1.7.1