У меня есть класс-оболочка для управления единичным соединением для чата.Когда сообщение сначала получает ConnectionManager
, обрабатывает его как обертку, а затем вызывает его за пределами класса.Есть ли какое-либо решение для этого?
Я использую шаблон синглтона для диспетчера соединений.
let _instance = null;
class ConnectionManager{
static _hubConnection;
static _proxy;
constructor(hubUrl) {
this._hubConnection = signalr.hubConnection(hubUrl);
this._hubConnection.logging = true;
}
static getInstance(){
if(_instance == null)
_instance = new ConnectionManager(GLOBALS.HUB_URL);
return _instance;
}
createHubProxy(){
this._proxy = this._hubConnection.createHubProxy('Hub');
this._proxy.on('addNewMessage', (message, fileUrl) => {
console.log(message.Body);
if(onReceivedNewMessage)// ---> Where is right place to define?
onReceivedNewMessage(message);
});
}
getHubConnection(){
if(this._hubConnection)
return this._hubConnection;
return null;
}
getHubProxy(){
if(this._proxy)
return this._proxy;
return null;
}
}
module.exports = ConnectionManager;
, а затем использую внешнюю сторону класса:
ConnectionManager.getInstance().onReceivedNewMessage( message => {
console.log(message);
});
спасибо взаранее