1、IDEA创建Module,结构如图(Tomcat8.0)

2、引入jar包:javax.websocket-api.jar

3、新建WebSocketTest类

import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException; /**
* Created by JiaPeng on 2016/2/15.
*/
@ServerEndpoint("/websocket")
public class WebSocketTest {
@OnMessage
public void onMessage(String message, Session session) throws IOException, InterruptedException {
System.out.println("Received: " + message);
session.getBasicRemote().sendText("This is the first server message"); int sendMessages = 0;
while (sendMessages < 10) {
Thread.sleep(5000);
session.getBasicRemote().sendText("This is an intermediate server message. Count: " + sendMessages);
sendMessages++;
}
session.getBasicRemote().sendText("This is the last server message");
} @OnOpen
public void OnOpen() {
System.out.println("Client connected");
} @OnClose
public void OnClose() {
System.out.println("Connection closed");
}
}

4、index.jsp页面代码

<!DOCTYPE html>
<html>
<head>
<title>Testing websockets</title>
</head>
<body>
<div>
<input type="submit" value="Start" onclick="start()" />
</div>
<div id="messages"></div>
<script type="text/javascript">
var webSocket =
new WebSocket('ws://localhost:8080/websocket'); webSocket.onerror = function(event) {
onError(event)
}; webSocket.onopen = function(event) {
onOpen(event)
}; webSocket.onmessage = function(event) {
onMessage(event)
}; function onMessage(event) {
document.getElementById('messages').innerHTML
+= '<br />' + event.data;
} function onOpen(event) {
document.getElementById('messages').innerHTML
= 'Connection established';
} function onError(event) {
alert(event.data);
} function start() {
webSocket.send('hello');
return false;
}
</script>
</body>
</html>

最新文章

  1. 小丁是怎样入门git的
  2. Spark 应用程序调优
  3. replace实现正则过滤替换非法字符
  4. Python:如何删除文件中的空白行?
  5. jsp标签精华(持续更新中)
  6. [AFUI]App Framework Quickstart
  7. HTML5新特性学习-1
  8. C++中引用
  9. 恢复js文件在windows默认打开方式
  10. Windows Phone 独立存储资源管理器工具
  11. zhenai
  12. Winform使用的一些常识
  13. SSIM(结构相似度算法)不同实现版本的差异
  14. ASP.NET Core中间件实现分布式 Session
  15. java 类的继承和接口的继承
  16. pytest框架之命令行参数1
  17. 【转】Spring总结以及在面试中的一些问题
  18. 用switch组件控制一个元素的显示和隐藏状态
  19. springboot解决文件上传大小限制
  20. ECharts图表实战经验1:如何设置图表同序列不同数据点的独立颜色值

热门文章

  1. Mac 使用SSH远程登录
  2. 命令行参数(argc, argv)
  3. Jdeveloper 太慢 slowly
  4. Windows10+Ubuntu双系统安装[多图]
  5. POJ2289-Jamie&#39;s Contact Groups-二分图多重匹配-ISAP
  6. polya计数定理在ACM-icpc中的应用
  7. ubuntu apt-get修改源地址
  8. swift项目实战FoodPin目录
  9. IT男的”幸福”生活
  10. nodejs简易实现一下bigpipe