| | |
| | | package cn.gistack.alerts.sse.controller; |
| | | |
| | | import cn.gistack.alerts.notice.service.impl.NoticeHandle; |
| | | import cn.gistack.alerts.sse.server.SSEServer; |
| | | import cn.gistack.alerts.sse.vo.SseVO; |
| | | import cn.gistack.sm.message.entity.MessageRecord; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Slf4j |
| | | @RestController |
| | | @CrossOrigin |
| | | @RequestMapping("/sse/sse") |
| | | @AllArgsConstructor |
| | | public class SSEController { |
| | | |
| | | private final NoticeHandle noticeHandle; |
| | | |
| | | /** |
| | | * 建立连接 |
| | |
| | | */ |
| | | @GetMapping("/connect") |
| | | public SseEmitter connect(SseVO sse){ |
| | | return SSEServer.connect(sse.getType() + ":" + sse.getUserId()); |
| | | String userId = sse.getType() + ":" + sse.getUserId(); |
| | | return SSEServer.connect(userId); |
| | | } |
| | | |
| | | /** |
| | | * 断开连接 |
| | | * @param sse |
| | | * @return |
| | | */ |
| | | @GetMapping("/disconnect") |
| | | public void disconnect(SseVO sse){ |
| | | String userId = sse.getType() + ":" + sse.getUserId(); |
| | | SSEServer.removeUser(userId); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @throws InterruptedException |
| | | */ |
| | | @GetMapping("/process") |
| | | public void sendMessage() throws InterruptedException { |
| | | SSEServer.sendMessage("web:123","hello!"); |
| | | // for(int i=0; i<=100; i++){ |
| | | // if(i>50&&i<70){ |
| | | // Thread.sleep(500L); |
| | | // }else{ |
| | | // Thread.sleep(100L); |
| | | // } |
| | | // SSEServer.batchSendMessage(String.valueOf(i)); |
| | | // } |
| | | public void sendMessage(){ |
| | | MessageRecord messageRecord = new MessageRecord(); |
| | | messageRecord.setRecipient("1642816241683865602"); |
| | | messageRecord.setTheme("测试123"); |
| | | messageRecord.setStatus(0); |
| | | List<MessageRecord> list = new ArrayList<>(); |
| | | list.add(messageRecord); |
| | | noticeHandle.saveMessageRecord(list); |
| | | } |
| | | } |