博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot 下websocket实现的两种方法
阅读量:5299 次
发布时间:2019-06-14

本文共 3381 字,大约阅读时间需要 11 分钟。

websocket前台实现代码,保存为html执行就好

html代码来自:https://blog.csdn.net/M348915654/article/details/53616837

            
WebSoket Demo

 

 

方法一

配置:

/** * webSocket 方法一 */@Configuration@ConditionalOnWebApplicationpublic class WebSocketConfig  {    @Bean    public ServerEndpointExporter serverEndpointExporter() {        return new ServerEndpointExporter();    }}

实现:

/** * webSocket 方法一 */@Slf4j@ServerEndpoint(value = "/websocket")@Componentpublic class WebSocketServer {    /**     * 连接建立成功调用的方法     */    @OnOpen    public void onOpen(Session session) {          }    /**     * 连接关闭调用的方法     */    @OnClose    public void onClose() {        webSocketSet.remove(this);  //从set中删除           }    /**     * 收到客户端消息后调用的方法     *     * @param message 客户端发送过来的消息     */    @OnMessage    public void onMessage(String message, Session session) {           }    /**     * @param session     * @param error     */    @OnError    public void onError(Session session, Throwable error) {         }}

方法二:

配置

/** * webSocket方法二 * @author tongxiabin */@Component@EnableWebMvc@EnableWebSocketpublic class WebSocketConfig2  implements WebSocketConfigurer {    @Resource    private MyWebSocketHandler handler;    @Override    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {        registry.addHandler(handler, "/wsMy").addInterceptors(new HandshakeInterceptor() {            @Override            public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Map
map) throws Exception { System.out.println("registerWebSocketHandlers-beforeHandshake"); serverHttpResponse.setStatusCode(HttpStatus.OK); return true; } @Override public void afterHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Exception e) { System.out.println("registerWebSocketHandlers-afterHandshake"); } }).setAllowedOrigins("*"); }}

实现:

/** * webSocket 方法二 */@Componentpublic class MyWebSocketHandler implements WebSocketHandler {    private static final Map
userMap=new HashMap<>(); @Override public void afterConnectionEstablished(WebSocketSession webSocketSession) throws Exception { String jspCode = (String )webSocketSession.getAttributes().get("jspCode"); if(userMap.get(jspCode)==null){ System.out.println(jspCode); userMap.put(jspCode,webSocketSession); } } @Override public void handleMessage(WebSocketSession webSocketSession, WebSocketMessage
webSocketMessage) throws Exception { System.out.println("handleMessage"); } @Override public void handleTransportError(WebSocketSession webSocketSession, Throwable throwable) throws Exception { System.out.println("handleTransportError"); } @Override public void afterConnectionClosed(WebSocketSession webSocketSession, CloseStatus closeStatus) throws Exception { System.out.println("afterConnectionClosed"); } @Override public boolean supportsPartialMessages() { return false; }}

 

转载于:https://www.cnblogs.com/lobin/p/10567424.html

你可能感兴趣的文章
MySQL 第六天
查看>>
pip和easy_install使用方式
查看>>
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>
我的工作习惯小结
查看>>
把word文档中的所有图片导出
查看>>
Spring 自动装配;方法注入
查看>>
浏览器的判断;
查看>>
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
uva 10791
查看>>
python的字典(dict)的键值对存储规则
查看>>
ubuntu18 tensorflow cpu fast_rcnn
查看>>
PageHelper在Mybatis中的使用
查看>>
POJ 1742 Coins
查看>>
Leetcode 589. N-ary Tree Preorder Traversal
查看>>
ADO.Net——增、删、改、查
查看>>
thinking back no11
查看>>
机器学习/深度学习/其他开发环境搭建记录
查看>>
xml.exist() 实例演示
查看>>
判断是否为空然后赋值
查看>>