前端代码 注意发送的消息体格式不同
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<title>简易websocket</title>
<body>
<div>
<label>请输入链接相关参数:</label>
<input id="connectId" type="text" style="width:880px;" value="ws://你的地址">
<button type="button" id="connect">连接</button><button type="button" id="disconnect">断开</button>
</div>
<div style="margin-top: 50px">
<div>
<button id="sendHeart" type="button">发送心跳</button>
</div>
</div>
<div id="msgInfo">
</div>
<div style="margin-top: 50px">
<div>
<div><span>接收者id:</span><input type="text" id="toId" >
<span>要发送的消息:</span><input type="text" id="msg"></input>
<button id="send" type="button">发送消息</button>
</div>
</div>
</div>
</body>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script>
var websocket=null;
var conect = null;
$("#connect").click(function(){
var connectId=$("#connectId").val();
if('WebSocket' in window) {
conect = connectId;
var connectUrl = document.getElementById("connectId").value;
console.log('链接地址' + connectUrl)
websocket = new WebSocket(connectUrl);
} else {
alert("浏览器不支持连接!")
return;
}
websocket.onopen = function(evnt) {
console.log(" websocket.onopen ");
alert("连接成功!");
};
websocket.onmessage = function(evnt) {
var msg = JSON.parse(evnt.data);
$("#msgInfo").append("<p><font color='red'>" + evnt.data + "</font></p>");
console.log(" websocket.onmessage ");
};
websocket.onerror = function(evnt) {
console.log(" websocket.onerror ");
};
websocket.onclose = function(evnt) {
console.log(" websocket.onclose ");
websocket.close();
alert("连接关闭!");
};
});
$("#disconnect").click(function(){
alert("连接关闭!");
websocket.onclose = function(evnt) {
console.log(" websocket.onclose ");
websocket.close();
alert("连接关闭!");
};
websocket.close();
});
$("#send").click(function(){
if (websocket == null){
alert("您还没有连接!!!");
return;
}
var toId = $("#toId").val();
var msg = $("#msg").val();
if (toId == null || toId == ''){
alert("请先输入接收者");
return;
}
if (msg == null || msg == ''){
alert("消息不能为空!!!");
return;
}
var msgJson = {
senderId:conect,
msgContent: msg,
toId:toId
};
websocket.send(JSON.stringify(msgJson));
});
$("#sendHeart").click(function(){
if (websocket == null){
alert("您还没有连接!!!");
return;
}
let buffer = new ArrayBuffer(1);
let dataView = new DataView(buffer);
dataView.setInt8(0,1);
websocket.send(dataView);
});
</script>
</html>
后端部分代码(接收数据的两种方式)
@OnMessage
public void onMessage(String message, Session session) throws IOException {
logger.info("客户端的发送消息======内容【" + message + "】");
}
@OnMessage
public void onMessage1(byte[] messages, Session session) throws IOException {
if (messages.length == 1 && messages[0] == 1){
}
}