websocket java服务端、html5客户端以及java客户端
2017-01-19 16:02
615 查看
摘要: @ServerEndpoint @ClientEndpoint
java服务端
@ServerEndpoint(value = "/WebSocket/{路径参数1}/{路径参数2}") public class HdActWebSocket { /** * * 方法说明 websocket连接建立成功调用的方法 * * @param 路径参数1 * * @param 路径参数2 * * @param session * 连接会话实例 * */ @OnOpen public void onOpen(@PathParam(value = "路径参数1") String 路径参数1, @PathParam(value = "路径参数2") String 路径参数2, Session session) { System.out.println("来自" + source + "的用户:" + openId + "建立连接!会话Id为:" + session.getId()); //保存参数到会话 session.getUserProperties().put("路径参数1", 路径参数1); session.getUserProperties().put("路径参数2", 路径参数2); } /** * * 方法说明 websocket连接关闭调用的方法 * * @param session * 连接会话实例 * */ @OnClose public void onClose(Session session) { } /** * * 方法说明 websocket连接收到消息调用的方法 * * @param message * 消息 * @param session * 会话实例 * */ @OnMessage public void onMessage(String message, Session session) { System.out.println("收到消息:" + message); } /** * * 方法说明 websocket连接发生错误调用的方法 * * @param session * @param error */ @OnError public void onError(Session session, Throwable error) { System.out.println(session.getId() + "客户端发生错误"); error.printStackTrace(); } /** * * 方法说明 服务器间消息转发服务 * * @param message * @throws IOException * @throws DeploymentException */ public void serverForward(String message) throws IOException, DeploymentException{ String url = "ws://" + 地址 ; Session clientSession = null; // 1.通过java客户端建立与服务器间socket连接 clientSession = ContainerProvider.getWebSocketContainer().connectToServer(WebSocketClient.class, URI.create(url)); // 2.发送消息 clientSession.getBasicRemote().sendText(message); // 2.关闭socket连接 clientSession.close(); } }
html5客户端
进行浏览器与服务器间websocket会话function websocketConnect(){ //判断当前浏览器是否支持WebSocket if('WebSocket' in window){ WebSocket = new WebSocket("ws://"+domainName+"/WebSocket/路径参数1/路径参数2"); } else{ alert('Not support websocket') } //连接发生错误的回调方法 WebSocket.onerror = function(){ console.log('error'); }; //连接成功建立的回调方法 WebSocket.onopen = function(event){ console.log('链接上'); WebSocket.send('hello'); } //接收到消息的回调方法 WebSocket.onmessage = function(event){ var data = event.data; console.log(data); } //连接关闭的回调方法 WebSocket.onclose = function(){ console.log('关闭了'); } }
java客户端
进行java客户端(也可看作服务器)与服务器间websocket会话@ClientEndpoint public class WebSocketClient { public WebSocketClient() { super(); } @OnOpen public void onOpen(Session session) { System.out.println("建立服务器间websocket连接:" + session.getId()); } @OnMessage public void onMessage(String message, Session session) { System.out.println("服务器间websocket连接:" + session.getId() + "收到消息:" + message); } @OnError public void onError(Throwable t, Session session) { System.out.println("服务器间websocket连接:" + session.getId() + "出错"); t.printStackTrace(); } @OnClose public void onClose( Session session) { System.out.println("服务器间websocket连接:" + session.getId() + "关闭了"); } }
相关文章推荐
- HTML5 Video标签的属性、方法和事件汇总介绍
- elasticsearch5.0.1安装 marvel 插件
- elasticsearch5.0.1安装 marvel 插件
- SegmentFault 技术周刊 Vol.20 - 用 Canvas 画个星空
- html5 webwork
- HTML5文本框灰体字
- HTML5定位实例
- 照片墙
- hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装
- 本地存贮-文件系统
- html5 头和底部导航固定
- HTML5 canvas专栏
- CDH5 添加数据节点
- 转:认识HTML5
- 移动web初体验
- H5 知识点
- 前端学习系列-html5
- 【HTML5】【第一天】【简单介绍】
- 【HTML5】【第二天】【网页的组成】
- 【HTML5】【第三天】【WebStorm安装和使用】