这是我创建多websocket连接的代码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>runoob.com</title>
<script type="text/javascript">
function WebSocketTest() {
if ("WebSocket" in window) {
for (let i = 0; i < 300; i++) {
// open web socket
new WebSocket("ws://localhost:8070");
console.log("open" + i + "websocket");
}
}
}
</script>
</head>
<body>
<div id="sse">
<a href="javascript:WebSocketTest()">Run WebSocket</a>
</div>
</body>
</html>
现在我想从服务器接收消息,如何编写代码?这样的代码可能共享ws变量,因此无法正常工作。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>runoob.com</title>
<script type="text/javascript">
function WebSocketTest() {
if ("WebSocket" in window) {
for (let i = 0; i < 300; i++) {
// open web socket
var ws = new WebSocket("ws://localhost:8070");
console.log("open" + i + "websocket");
ws.onmessage = function (evt)
{
var received_msg = evt.data;
};
}
}
}
</script>
</head>
<body>
<div id="sse">
<a href="javascript:WebSocketTest()">Run WebSocket</a>
</div>
</body>
</html>
答案 0 :(得分:0)
这样编写代码,但是Chrome在我的测试中将websocket连接限制为少于250个:
function newcon(i) {
var ws = new WebSocket("wss://ws.example.com");
console.log("open" + i + "websocket");
ws.onopen = function () {
ws.send("client " + i + " send message");
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
};
ws.onclose = function () {
console.log("closed");
};
}
调用功能:
function WebSocketTest() {
if ("WebSocket" in window) {
for (let i = 0; i < 2; i++) {
newcon(i);
}
}
}