add unlistenMessage to rtmt
This commit is contained in:
parent
af98005ea1
commit
3947f28195
@ -4,4 +4,5 @@ export type OnMessage = (message : Object) => any
|
||||
export interface RTMT{
|
||||
sendMessage : (channel : string, message : Object) => any
|
||||
listenMessage : (channel : string, callback : OnMessage) => any
|
||||
unlistenMessage : (channel : string, callback : OnMessage) => any
|
||||
}
|
||||
@ -1,12 +1,12 @@
|
||||
import { decode, encode } from "./encode_decode_message";
|
||||
import { Bytes, OnMessage, RTMT } from "./rtmt";
|
||||
import { server } from "../service/http_service";
|
||||
import { channel_ping, channel_pong } from "../const/channel_names";
|
||||
import { server } from "../const/config";
|
||||
|
||||
const PING_INTERVAL = 15000, PING_INTERVAL_BUFFER_TIME = 1000;
|
||||
|
||||
export class RTMTWS implements RTMT {
|
||||
private messageChannels: Map<String, OnMessage>;
|
||||
private messageChannels: Map<String, OnMessage | undefined>;
|
||||
private ws: WebSocket;
|
||||
|
||||
private pingTimeout?: number = undefined;
|
||||
@ -69,10 +69,16 @@ export class RTMTWS implements RTMT {
|
||||
this.ws.send(data);
|
||||
}
|
||||
|
||||
// todo: support multible listeners
|
||||
listenMessage(channel: string, callback: OnMessage) {
|
||||
this.messageChannels.set(channel, callback);
|
||||
}
|
||||
|
||||
// todo: support multible listeners
|
||||
unlistenMessage(channel : string, callback : OnMessage) {
|
||||
this.messageChannels.set(channel, undefined);
|
||||
}
|
||||
|
||||
onWebSocketMessage(rtmt: RTMTWS, event: MessageEvent) {
|
||||
const { channel, message } = decode(event.data);
|
||||
rtmt.onMessage(channel, message);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user