| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | //用于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); |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | 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"))){ |
| | | sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_REQUEST)); |
| | |
| | | jsonObject.put("data", new JSONObject()); |
| | | TextWebSocketFrame tws = new TextWebSocketFrame(jsonObject.toJSONString()); |
| | | // ctx.channel().writeAndFlush(tws); |
| | | |
| | | new NettyWebSocketController().JudgeOperation(ctx,requestmsg);//小程序心跳处理 |
| | | |
| | | nettyWebSocketController.JudgeOperation(ctx,requestmsg);//小程序心跳处理 |
| | | |
| | | // 群发服务端心跳响应 |
| | | Global.group.writeAndFlush(new TextWebSocketFrame((tws).text())); |