[英]Swap websocket connections between multiple clients
我正在嘗試監視兩台計算機,並將其信息顯示給網站。 在服務器中,我使用javascript websocket,兩台計算機將信息發送到服務器IP。 我想在同一頁面上監視兩台計算機的狀態,並接收10條以上的消息,交換信息以顯示。
這是我的實際代碼,但是那樣可以同時連接兩個插座。 我想用第一個IP打開一個套接字,接收10條消息,關閉連接並打開第二個IP。 收到10條IP2消息后,關閉連接,打開具有第一個IP的套接字,然后重復該過程。
最好使用node.js? 我從未使用過它,並且我不知道它的潛力。
有人可以幫我嗎?
對不起,我英語不好。
var IPs = ['ws://localhost:9000','ws://localhost:8000'];
while(1){
IPs.forEach(function(IPactual){
var socket = new WebSocket(IPactual);
console.log(socket.readyState);
socket.onopen = function() {
console.log('%c Connected to ' + socket.url, "color:orange ");
}
socket.onclose = function() {
console.log('%c Disconnected from ' + socket.url, "color: red");
}
socket.onerror = function(e) {
console.log('%c Ooops... ' + e, "color: red");
}
var messages= 0;
socket.onmessage = function(e) {
messages++;
console.log(messages);
// WRITE TO HTML THE INFORAMTION RECIVED
if (messages==10){
socket.onclose = function () {};
socket.close()
}
}
})
}
感謝您的幫助,保持打開狀態是我這樣控制的:
$(document).ready(function () {
var n_messages_to_show = 10;
var messages_control = 0;
var socket = new WebSocket('ws://localhost:9000');
socket.onopen = function() {
console.log('%c Connected to ' + socket.url, "color:orange ");
}
socket.onclose = function() {
console.log('%c Disconnected from ' + socket.url, "color: red");
}
socket.onerror = function(e) {
console.log('%c Ooops... ' + e, "color: red");
}
var connections = 0;
socket.onmessage = function(e) {
if (messages_control<n_messages_to_show){
console.log('%c Sending TAD1 monitor information ','background:lightgreen ; color: black');
messages_control++;
post_to_web(e);
}
}
var socket2 = new WebSocket('ws://localhost:8000');
socket2.onopen = function() {
console.log('%c Connected to ' + socket2.url, "color:orange ");
}
socket2.onclose = function() {
console.log('%c Disconnected from ' + socket2.url, "color: red");
}
socket2.onerror = function(e) {
console.log('%c Ooops... ' + e, "color: red");
}
var connections = 0;
socket2.onmessage = function(e) {
if (messages_control>n_messages_to_show){
console.log('%c Sending TAD2 monitor information ','background:lightgreen ; color: black');
messages_control++;
post_to_web(e);
}
if(messages_control==n_messages_to_show*2){
messages_control=0;
}
}
post_to_web = function(e){
//############################################
// POST TO WEB
//############################################
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.