Я видел этот вопрос и ответ , но он не отвечает на мой вопрос.
Я использую socket-io.client с angular. У меня нет проблем с моей серверной реализацией socket.io. Мой вопрос: как правильно реализовать несколько пространств имен во внешнем интерфейсе при использовании socket.io и angular?
Вот мой пример кода: { ссылка }
import { Injectable } from '@angular/core';
import * as io from 'socket.io-client';
import {Observable} from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class SocketIOService {
private socket:SocketIOClient.Socket;
// I know by using multiple of the service above I can use multiple namespaces
// by passing the namespaces in the constructor. Will doing that create multiple
// instances of socket.io? Is that the best way to implement it?
constructor() {
this.socket = io(/*If I place the namespace here it works*/);
// It I place the namespace as shown above it works. But how can I have multiple namespaces by doing that?
}
joinRoom(room) {
this.socket.nsp = "/b" //<--- Doing this does not work
this.socket.emit('join', room);
}
}
Я прочитал здесь , что Объединение нескольких пространств имен не поддерживается. , но это касается socket.io-swift. Это так в socket.ioClient с angular?
Как я могу реализовать несколько пространств имен? Должен ли я использовать несколько служб socket:SocketIOClient.Socket;
или есть другой способ?