package com.sinata.zuul.controller; import com.alibaba.fastjson.JSON; import com.sinata.zuul.util.ResultUtil; import com.sinata.zuul.util.applets.NettyWebSocketController; import com.sinata.zuul.util.echo.NettyChannelMap; import com.sinata.zuul.util.echo.NettyServerController; import io.netty.channel.ChannelHandlerContext; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/netty") public class NettyController { /** * 向客户端推送消息 * @param id * @param msg */ @ResponseBody @PostMapping("/sendMsgToClient") public String sendMsgToClient(Integer id, Integer type, String msg){ if(type == 1){//用户端 ChannelHandlerContext channel = NettyChannelMap.getData("Applets" + id);//小程序 if(null != channel){ NettyWebSocketController.sendMsgToClient(channel, msg); return JSON.toJSONString(ResultUtil.success()); } channel = NettyChannelMap.getData("USER" + id); if(null != channel){ NettyServerController.sendMsgToClient(channel, msg); return JSON.toJSONString(ResultUtil.success()); } return JSON.toJSONString(ResultUtil.error("推送失败-----用户id=" + id)); } if(type == 2){//司机端 ChannelHandlerContext channel = NettyChannelMap.getData("DRIVER" + id); if(null != channel){ NettyServerController.sendMsgToClient(channel, msg); return JSON.toJSONString(ResultUtil.success()); } return JSON.toJSONString(ResultUtil.error("推送失败-----司机id=" + id)); } return JSON.toJSONString(ResultUtil.error("推送失败")); } }