webSocket实现
来源:互联网 发布:javascript语言精粹pdf 编辑:程序博客网 时间:2024/06/05 22:57
package cn.clgate.atlas.webSocket;import org.apache.log4j.Logger;import org.springframework.stereotype.Service;import org.springframework.web.socket.*;import java.io.IOException;import java.util.ArrayList;@Servicepublic class SocketHandler implements WebSocketHandler{ private static final Logger logger; private static final ArrayList<WebSocketSession> webSocke; static{ webSocke = new ArrayList<WebSocketSession>(); logger = Logger.getLogger(SocketHandler.class); } @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { logger.info("成功建立socket连接"); webSocke.add(session); session.sendMessage(new TextMessage("成功建立socket通信了")); } @Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { // TODO Auto-generated method stub } @Override public void handleTransportError(WebSocketSession session, Throwable error) throws Exception { if(session.isOpen()){ session.close(); } logger.error("连接出现错误:"+error.toString()); webSocke.remove(session); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus arg1) throws Exception { logger.debug("连接已关闭"); logger.info("连接已关闭"); webSocke.remove(session); } @Override public boolean supportsPartialMessages() { return false; } /** * 给所有在线用户发送消息 * * @param message */ public void sendMessageToUsers(TextMessage message) { for (WebSocketSession user : webSocke) { try { if (user.isOpen()) { user.sendMessage(message); } } catch (IOException e) { e.printStackTrace(); } } } }
package cn.clgate.atlas.webSocket;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.socket.config.annotation.EnableWebSocket;import org.springframework.web.socket.config.annotation.WebSocketConfigurer;import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;@Configuration@EnableWebMvc@EnableWebSocketpublic class WebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer{ @Autowired private SocketHandler socketHandler; @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { //注册处理拦截器,拦截url为socketServer的请求 registry.addHandler(socketHandler, "/socketServer"); //注册SockJs的处理拦截器,拦截url为/sockjs/socketServer的请求 registry.addHandler(socketHandler, "/sockjs/socketServer"); }}
测试类:
@org.junit.Testpublic void test(){ SocketHandler socketHandler = new SocketHandler(); socketHandler.sendMessageToUsers(new TextMessage("webSocket向前端发了一条消息"));}
阅读全文
0 0
- WebSocket实现
- WebSocket 实现
- WebSocket实现
- webSocket实现
- nodejs+nodejs-websocket 实现websocket
- java WebSocket的实现以及Spring WebSocket
- websocket实现在线客服
- WebSocket 理解,聊天实现
- websocket实现过程
- WebSocket 服务端实现
- Java实现WebSocket聊天
- Java实现WebSocket
- WebSocket的java实现
- go的websocket实现
- WebSocket+Netty实现聊天室
- websocket web 实现记录
- html5 websocket 简单实现
- 安卓用websocket实现推送
- 初识bower,简单用法
- iOS 手机网站支付转Native支付(使用WKUIDelegate协议获取url)
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
- redis学习系列(七)--redis-database
- 日期
- webSocket实现
- plsql 通过修改配置文件的方式实现数据库的连接
- 普元EOS Platform 的nui的日框期怎么设置成中文,找不到显示中文的属性。
- Winfrom控件之DataGridView
- Android如何判断NavigationBar是否显示(获取屏幕真实的高度)
- 金融商品与普通实物商品的区别
- 洛谷【p1122】最大子树和
- Swing中Timer定时器的作用
- Kotlinで初め