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