feat: 增加socket通知并调整数据结构

hunan
huangfeng 9 months ago
parent 91ddd6483c
commit 6d0d1e1277

@ -1,57 +1,36 @@
package com.shxy.xymanager_admin.controller;
import com.shxy.xymanager_common.annotation.Log;
import com.shxy.xymanager_common.base.BaseController;
import com.shxy.xymanager_common.base.ResponseReult;
import com.shxy.xymanager_framework.socket.WebSocketServer;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(value = "测试接口", tags = "测试接口tags")
@Controller
@RestController
@Api(tags = {"测试接口"})
@RequestMapping("test")
@Slf4j
public class TestController {
public class TestController extends BaseController {
@ApiOperation(value = "测试", notes = "测试notes", httpMethod = "POST")
@ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
@RequestMapping("/user/login")
@Log(title = "测试", type = "查询")
public String gettest() {
log.info("有一个沙雕点了链接");
return "/api/index2";
}
@Resource
WebSocketServer webSocketServer;
@GetMapping("/user/logins")
@Log(title = "测试", type = "查询")
public String hhtest() {
log.info("有一个沙雕点了链接");
return "/api/index2.html";
@GetMapping("sendMsg")
@ApiOperation("发送消息")
public void sendMsg(String msg) {
webSocketServer.sendNotice(msg);
}
// @ApiOperation(value = "登录", notes = "登录", httpMethod = "POST")
//// @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")})
// @RequestMapping("/login")
// @Log(title = "登录", type = "查询")
// public String login(String username, String password) {
// //获取主题对象
// Subject subject = SecurityUtils.getSubject();
// try {
// subject.login(new UsernamePasswordToken(username,password));
// System.out.println("登录成功!!!");
// return "登录成功";
// } catch (UnknownAccountException e) {
// e.printStackTrace();
// System.out.println("用户错误!!!");
// } catch (IncorrectCredentialsException e) {
// System.out.println("密码错误!!!");
// }
// return "登录失败";
// }
@GetMapping("test")
@ApiOperation("test")
public ResponseReult<String> test() {
return ResponseReult.success("OK");
}
}

@ -0,0 +1,9 @@
package com.shxy.xymanager_common.model;
import lombok.Data;
@Data
public class MessageModel {
int type;
String content;
}

@ -1,5 +1,7 @@
package com.shxy.xymanager_framework.socket;
import com.shxy.xymanager_common.model.MessageModel;
import com.shxy.xymanager_common.util.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@ -29,12 +31,31 @@ public class WebSocketServer {
log.info("剩余socket连接数" + sessionPools.size());
}
public void sendMessage(String message) {
public void sendWarning(String message) {
MessageModel msg = new MessageModel();
msg.setType(1);
msg.setContent(message);
String json = JSONUtil.object2Json(msg);
Iterator<Session> it = sessionPools.listIterator();
while (it.hasNext()) {
Session session = it.next();
try {
session.getBasicRemote().sendText(message);
session.getBasicRemote().sendText(json);
} catch (Exception ignore) {
}
}
}
public void sendNotice(String message) {
MessageModel msg = new MessageModel();
msg.setType(2);
msg.setContent(message);
String json = JSONUtil.object2Json(msg);
Iterator<Session> it = sessionPools.listIterator();
while (it.hasNext()) {
Session session = it.next();
try {
session.getBasicRemote().sendText(json);
} catch (Exception ignore) {
}
}

Loading…
Cancel
Save