2017-12-22 20 views
1

したがって、rxjsのObservable.webSocketをnode.js環境で使用しようとしています。私はドキュメントとthisスタックオーバーフローポストから、自分自身のバージョンのwebsocketを提供する必要があることを知りました。私が遭遇する問題は、提供された両方の例がWebSocketSubjectを示しているが、どこから来るのかは言及していない。 rxjs5 - WebSocketSubjectはコンストラクタではありません

const ws = require('nodejs-websocket'); 
const Rx = require('rxjs/Rx'); 
const WebSocketSubject = require('rxjs/observable/dom/WebSocketSubject'); 

socket = new WebSocketSubject({url: 'ws://....', WebSocketCtor: ws.w3cwebsocket}); 

const marketSocket$ = Rx.Observable.webSocket('ws://....'); 

この

は必要WebSocketSubjectの取得で私の試みでしたが、私はただ、エラーが「WebSocketSubjectがコンストラクタではない」ことを私に言ってもらいます。痛いほど明白な何かが私は行方不明ですか?私が間違っていることについての説明とともに、有効なwebsocketコンストラクタ(必要なすべての参照が提供されています)を提供する実用的なソリューションを共有できれば、それはすばらしいでしょう!

答えて

2

requireへの呼び出しは、WebSocketSubjectを含むモジュールを返すので、あなたの呼び出しは次のようになります必要になります。

const WebSocketSubject = require('rxjs/observable/dom/WebSocketSubject').WebSocketSubject; 

またはこのような:確かに

const { WebSocketSubject } = require('rxjs/observable/dom/WebSocketSubject'); 
+1

。 RxJS APIは、示されているように確立された規約とは異なります。 –

+0

ありがとう@cartant。それはその問題を解決しますが、私は上記で参照したスタックオーバーフローの問題と同じエラーに遭遇しているようです: '' WebSocketコンストラクタが見つかりません ''。何らかの理由で、私は有効なコンストラクタを提供するという要件を満たすことができません。 – kelibra

+0

@kelibraスニペットのコードは、['nodejs-websocket'クライアントAPI](https://github.com/sitegui/nodejs-websocket#wsconnecturl-options-callback)には適していません。たぶん、代わりに['ws'](https://github.com/websockets/ws)を試してみてください.GitHubの星はたくさんあります。 – cartant

関連する問題