當我向服務器發送消息時,只有一個客戶端,一切正常,因爲只有一條消息被髮送,我有這個奇怪的問題。但是,當多個客戶端連接到服務器,並且一個客戶端向服務器發送某些內容時,服務器會收到來自每個客戶端的消息,原因很奇怪。當只有一個客戶端發射時,爲每個客戶端發射Socket.IO
我使用Socket.IO和角2.
客戶機代碼: image :與客戶端1的發光時
io.on('connect', function (socket) {
console.log("a user connected");
socket.on('sweg', function(msg) {
var incomingMsg = JSON.parse(msg);
console.log(incomingMsg);
});
});
服務器響應:
import { Component } from '@angular/core';
import * as io from "socket.io-client";
@Component({
moduleId: module.id,
selector: 'register-app',
templateUrl: 'register.component.html',
})
export class RegisterComponent { name = 'Angular';
socket: SocketIOClient.Socket;
constructor(){
this.socket = io('http://localhost:9999');
}
registerAccount(){
this.socket.emit('sweg', JSON.stringify('waaaaat'));
}
}
服務器代碼使用2個客戶端發送時的服務器響應: image
正如您所看到的,客戶端由於某種原因發射了兩次,因爲有2個客戶端,即使只有1個客戶端決定發射。任何幫助,將不勝感激。
編輯:如果我也許不清楚,我的目標是,當客戶端發出時,它應該只爲自己發出,而不是所有其他客戶端。
你也許有辦法解決這個問題。不幸的是不知道如何解決它。我的目標是即使多個客戶端連接,發出的一個客戶端實際上應該是服務器從中接收消息的唯一客戶端。 – SquishyAura