WebSocket的Demo程序
在Eclipse下创建Dynamic Web Project
在其中WebContent目录下新建html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>WebSocketDemo</title>
<script type="text/javascript">
var ws;
var target = "ws://localhost:8080/WebSocketDemoOne/webSocket"//http://localhost:8080/WebSocketDemoOne/
function subOpen() {
if ('WebSocket' in window) {
ws = new WebSocket(target);
alert("您的浏览器支持 WebSocket!");
} else if ('MozWebSocket' in window) {
ws = new MozWebSocket(target);
alert("您的浏览器支持 MozWebSocket!");
} else {
alert('WebSocket is not supported by this browser.');
return;
}
alert("WebSocket!已初始化完成");
ws.onmessage = function(event) {
var dv = document.getElementById('dv');
dv.innerHTML += event.data;
alert("数据已接收...");
}
ws.onclose = function() {
alert("连接已关闭...");
};
}
</script>
<script>
function subSend() {
var msg = document.getElementById('msg').value;
ws.send(msg);
document.getElementById('msg').value = "";
}
</script>
</head>
<body>
<a href="javascript:subOpen()">开启WebSocket连接</a>
<input id="msg" />
<button onclick="subSend();">发送消息</button>
<div id="dv"></div>
</body>
</html>
在src下新建java文件
package bxsteel.webSocket.webSocketConfig;
import java.io.IOException;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/webSocket")
public class EchoServlet {
@OnOpen
public void open(Session session) {
// 一个session代表一个通道会话
System.out.println("开启了通道:sessionid:" + session.getId());
}
@OnClose
public void close(Session session) {
System.out.println("sessionid" + session.getId() + "通道关闭了");
}
@OnMessage
public void message(Session session, String msg) {
System.out.println("客户端:" + msg);
try {
session.getBasicRemote().sendText("服务器回复:你也" + msg);
} catch (IOException e) {
e.printStackTrace();
}
;
}
}
目录结构如下
发布到Tomcat9.0上,运行程序
访问路径:http://localhost:8080/WebSocketDemoOne/WebSocket.html
点击开启WebSocket连接
发送消息
关掉服务器
console输出