2017-07-16 110 views
1

我需要一个可观察到订阅当我Rx.Obervable.webSocket连接。有一个openObserver属性可以使用,但我不知道如何创建一个Observalbe。RXJS WebSocket的主题onconnected

const WebSocket = require('ws'); 
const Rx = require('rxjs'); 

const observer = { 
    next: (event) => { 
    console.log('Test'); 
    } 
} 

const socket = Rx.Observable.webSocket({ 
    url: 'ws://192.168.100.155:2001', 
    WebSocketCtor: WebSocket, 
    openObserver: observer, 
    protocol: 'server' 
}); 

isConnected().subscribe(() => { 
    // do something after socket is connected ... 
}); 
+0

isConnected()是什么?我想你想写'socket.subscribe()'。 – martin

+0

sry那不清楚。当套接字完全连接时,我需要一个可以订阅的Observable。 isConnected()应该是返回这样一个Observable的函数。 – Pascal

回答

1

我想你可以做这样的事情:

const subject = new Subject(); 

const socket = Rx.Observable.webSocket({ 
    url: 'ws://192.168.100.155:2001', 
    WebSocketCtor: WebSocket, 
    openObserver: subject, 
    protocol: 'server' 
}).multicast(subject); 

subject.subscribe(...); 

这应该先放出一个值对象建立连接时,然后发出每一个消息。