실시간 voice chat
Last updated
Last updated
import * as rx from rxjs/RX
private subject: Rx.Subject<MessageEvent>;
public connect(url ): Rx.Subject<MessageEvent>{
if(! this.subject) {
this.subject = this.create(url);
console.log("successfully connect:"+ url);
}
return this.subject;
}
private create(url): Rx.Subject<messageEvent>{
let ws = new WebSocket(url);
let observable = Rx.Obserable.create(
(obs: Rx.Observer<MessageEvent>) => {
ws.onmessage = obs.net.bind(0bs)
we.onerror = obs.error.bind(0bs)
ws.onclose = obs.complete.bind(obs);
return ws.close.bind(ws)
}
)
let observer = {
next: (data: Object) => {
if(ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify(data));
}
}
}
return Rx.Subject.create(observer,observable);
}
ng g service chat
chatservice