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