Java WebSocket——一个简单的例子(注解式)
来源:互联网 发布:pano2vr.js 域名限制 编辑:程序博客网 时间:2024/06/06 23:55
第一步:创建WebSocket端点(服务器端)
/** * */package com.webSocket.demo;import javax.websocket.OnMessage;import javax.websocket.server.ServerEndpoint;/** * 注解@ServerEndpoint是类级别注解,用于告诉Java平台它注解的类是一个WebSocket端点。 * 该注解的唯一强制参数是相对URI * @author Memphy * 2016年1月18日 下午2:30:59 */@ServerEndpoint("/server")public class Server {/** * 注解@OnMessage是方法级别注解,该注解指定了被注解的方法处理入站消息 * @param incomingMessage 入站消息 * @return String 服务器端返回的数据 */@OnMessagepublic String reply(String incomingMessage) {return "The server has received message:" + incomingMessage;}}
第二步:创建WebSocket端点(客户端)
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>Java WebSocket Demo</title> <script type="text/javascript" language="javascript"> var webSocket; var uri = "ws://localhost:8080/WebSocketDemo/server" function webSocketDemo() { openWebSocket(uri); initEventHandler(); } function openWebSocket(uri) { webSocket = new WebSocket(uri); } //绑定事件 function initEventHandler() { webSocket.onopen = function (event) { alert("connected!"); var message = document.getElementById("in_message").value; sendMessage(message); } webSocket.onmessage = function (event) { alert("received message : \n" + event.data); closeWebSocket(); } webSocket.onerror = function (event) { alsert("error : " + evnet.data); closeWebSocket(); } } //发送消息到另一个websocket端 function sendMessage(message) { webSocket.send(message); } //关闭webSocket function closeWebSocket() { webSocket.close(); } </script><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <h1>Java WebSocket Demo</h1> <form action=""> <input type="button" onclick="webSocketDemo()" value="press to send message"> <input id="in_message" value="Hello word!"> </form> </body></html>
分析:
端点是Java WebSocket API组件模型的中心:每一个使用Java WebSocket API 所创建的WebSocket应用都有WebSocket端点的参与。我们使用术语“端点”来表示WebSocket对话的一端。当通过@ServerEndpoint来注解Server类时,它将该Java类转换成逻辑上的WebSocket端点。当部署包含Server类的应用时,WebSocket实现首先扫描包含Server类的WAR文件,找到其中的WebSocket端点,然后将此类注册成WebSocket端点。当客户端通过URI/server来尝试建立到端点的连接时,因为该URI匹配请求中的URI,WebSocket实现将创建Server类的一个新实例,并使得此Server类的实例为后续的WebSocket对话服务。
参考书籍:
《Java WebSocket编程 开发、部署和保护动态Web应用》/(美)科沃德(Coward, D.) 著;刘建、夏先波 译. ——北京:清华大学出版社,2015
0 0
- Java WebSocket——一个简单的例子(注解式)
- Java WebSocket编程——一个简单的例子(编程式)
- 简单的WebSocket例子
- JAVA注解简单例子
- WebSocket的一个小例子
- 关于JAVA注解的一个例子
- java后端实现websocket简单例子
- @Resource注解原理和一个简单的小例子
- WebSocket -- 一个简单的Demo
- 使用Tomcat8实现WebSocket的简单例子
- 一个WebSocket客户端的JavaScript例子
- (java)一个简单的原生的RabbitMQ的例子。
- cocos2d WebSocket简单例子
- 简单的JPA注解例子
- 一个简单的机器人例子(Java)
- 一个简单java序列化的例子
- 一个简单的java正则表达式例子
- 一个简单的Java信号量例子
- hibernate进阶--一/二级缓存策略
- 用Wikidata做实体搜索的两种方案
- Java 中 extends 使用时的小漏洞
- 编译LibLas
- activemq jms 学习
- Java WebSocket——一个简单的例子(注解式)
- 树形结构的处理——组合模式(三):杀毒软件框架结构的解决方案
- 查找最小的k个元素
- ios收到推送后处理多次
- Android 5.0 SystemUI
- iOS 在cell上面查找你设置的控件
- AS3操作WebService
- Tomcat发布文件
- 纯CSS控制背景图片100%自适应填充布局