tomcat支持的websocket服务
首发:个人博客
在tomcat7之后的版本,写个websocket服务程序非常容易——
如以下代码所示,当客户端建立了一个连接并发送了一些什么内容到服务器,服务器将每隔两秒返回一个字符串“world”。
之所以演示每两秒返回一次是为了说明这是长连接而不是短连接。
import java.io.IOException;
import javax.websocket.OnMessage;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;@ServerEndpoint("/test")
public class MyTest {@OnMessage
public void onMessage(String message, Session session)
throws IOException, InterruptedException {
System.out.println("客户端说:" + message);
while(true){
session.getBasicRemote().sendText("world");
Thread.sleep(2000);
}
}
}
网页只需要这样写:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello WebSocket</title>
</head>
<body>
<div id="content"></div>
<button onclick="sayHello()">打招呼</button><script type="text/javascript">
var webSocket =
new WebSocket('ws://localhost:8080/dyna/test');webSocket.onerror = function(event) {
onError(event)
};webSocket.onopen = function(event) {
onOpen(event)
};webSocket.onmessage = function(event) {
onMessage(event)
};function onMessage(event) {
document.getElementById('content').innerHTML += '<br />服务器说:' + event.data;
}function onOpen(event) {
document.getElementById('content').innerHTML = '连接成功';
}function onError(event) {
document.getElementById('content').innerHTML = '出现错误';
}function sayHello() {
webSocket.send('hello');
return false;
}
</script>
</body>
</html>
调试的时候发现tomcat7的支持不是特别好,
在eclipse里添加server然后在上面跑项目,不支持websocket;
用在server.xml里添项目的方式,也不支持websocket。
所以换成tomcat8,在eclipse里添加server然后跑项目,websocket也好使。
这样调试就很方便了。
TODO:
1.maven的tomcat7:run个别项目出现奇怪的问题;maven集成tomcat8的实验有时间做做
2.spring4对websocket的支持怎么试都不成功,有时间攻克它。
3.把今天学的即使通讯技术与websocket结合,做网页版qq之类的demo。
tomcat支持的websocket服务的更多相关文章
- 使用tomcat方式实现websocket即时通讯服务端讲解
使用tomcat方式实现websocket即时通讯服务端讲解 第一种方案:使用Tomcat的方式实现 tomcat版本要求:tomcat7.0+.需要支持Javaee7 导入javeee-api的ja ...
- YxdIocp包含有支持大并发的TCP服务组件、HTTP服务组件、UDP服务组件、WebSocket服务组件
Delphi Windows IOCP 通讯模型封装,基于DIOCP.YxdIocp包含有支持大并发的TCP服务组件.HTTP服务组件.UDP服务组件.WebSocket服务组件,和TCP.UDP等基 ...
- Tomcat如何实现WebSocket
WebSocket协议属于HTML5标准,越来越多浏览器已经原生支持WebSocket,它能让客户端和服务端实现双向通信.在客户端和服务器端建立一条WebSocket连接后,服务器端消息可直接发送到客 ...
- tomcat 支持https
HTTP是平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全.为了保证 这些隐私数据能加密传输,于是网景公司设计了SSL(Se ...
- 使用websocket-sharp来创建c#版本的websocket服务
当前有一个需求,需要网页端调用扫描仪,javascript不具备调用能力,因此需要在机器上提供一个ws服务给前端网页调用扫描仪.而扫描仪有一个c#版本的API,因此需要寻找一个c#的websocket ...
- 小程序server-3-搭建WebSocket 服务
小程序server-3-搭建WebSocket 服务: 1.安装 Node 模块 使用 ws 模块来在服务器上支持 WebSocket 协议,下面使用 NPM 来安装: cd /var/www/wxp ...
- Tomcat 支持的Java 版本和兼容性总结
https://tomcat.apache.org/whichversion.html 最新最全的Tomcat 支持的Java版本对照,即兼容性一览表: Servlet Spec JSP Spec ...
- 基于jersey和Apache Tomcat构建Restful Web服务(一)
基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...
- Windows 下tomcat安装及将多个tomcat注册为Windows服务
一.应用场景 虽然Windows在当下已经不再是我们作为服务器操作系统平台的首选,但是还是有一些开发商或者项目整体需求的限制必须运行在Windows系统平台之下.为了避免多个应用部署在同一个tomca ...
随机推荐
- A Guide to Creating a Quality Project Schedule
Successful projects start with a good quality project schedule. Creating a schedule is one of the fi ...
- Linux上使用SMART检测硬盘
SMART(Self-Monitoring, Analysis, and Reporting Technology)是一种普及度比较高的磁盘分析检测工具,磁盘运行过程中,该工具搜集磁盘的状态参数,如型 ...
- JS-008-日期控件操作
此文以 js 操作 layDate 日期组件为示例演示,进行日期修改. 相应的演示示例脚本,敬请参阅之前的博文:HTML-001-日期组件 layDate 演示. 操作结果如下所示: 至此, JS-0 ...
- C++经典编程题#4:单词翻转
总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个句子(一行),将句子中的每一个单词翻转后输出. 输入 只有一行,为一个字符串,不超过500个字符.单词之间以空格隔开. 输出 ...
- textarea 默认文字获取焦点失去焦点
<textarea name="textarea" cols="" title="contactForm" class="t ...
- 简述Docker镜像、容器、仓库概念
Docker镜像 Docker镜像(Image)类似于虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统. 例如:一个镜像可以完全包含了Ubuntu操作系统环境,可以把它称 ...
- iptables常用操作
1.iptables服务重启 service iptables restart 2.保存iptables规则 iptables-save > ~/iptables.save 3.恢复iptabl ...
- python字典循环小点
对于字典数据量不大时候 首先会将字典转换成列表,写到内存,如果几百万条,就会减慢速度 for k,v in dic:print k,v 可以这样 for k in dic:print k,dic[ ...
- linux 设置网卡
配置网卡 修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,如果有多张网卡,则修改相应的网卡 # vim /etc/sysconfig/network-scr ...
- mysql -prompt选项
使用-pormpt修改提示符.可以在登录时或者在登录后使用prompt选项来修改提示符 (1)使用mysql命令行参数修改提示符 # mysql -u root -p Enter password: ...