2016-04-26 12 views
2

私は何か基本的なことをしようとしていますが、それは完全に私を逃しています。私はrxjx/observable/dom/webSocketObservableRxJS5に作成しようとしていますが、typescriptやes6モジュールは使用していません。 Observableをドキュメントに従って適切にパッチを当てることができましたが、対象となる文字列を渡すときはいつでもエラーが表示されます。rxjs5 - WebSocketコンストラクタが見つかりません

no WebSocket constructor can be found[source]

私はまだTypeScriptを掘り下げる時間がありませんでしたが、私が知る限り、コンストラクタの条件を満たしており、またテスト仕様を見てきました。they use the function in the same wayObservable.webSocket('ws://host:port'); I試してみましたが、私はまだエラーを取得します。

私が試した:

var Rx = require('rxjs/Rx'); 
require('rxjs/Rx.dom').webSocketSubject; //also tried just using `.webSocket` 

var source = Rx.Observable.webSocket('ws://localhost:53311'); 

source.subscribe(); 

私もRx.Observable.webSocketにオブジェクトを渡して試してみた:

var source = Rx.Observable.webSocket({ 
    url: 'ws://host:port' 
}); 

誰も私がavailable via rxjs5だことwebSocket観測を使用する方法を見つけ出す手助けすることができ、 commonJSから消費されますか? (ノードv5.11)

答えて

2

これはTypeScriptに関するものではありません.WebSocketSubjectへのwebsocketのコンストラクタを提供する必要があります。テストケースで

それも同様に活字体またはES15 RxJSモジュールに必要

var ws = require('websocket'); 

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

ような設定オブジェクトとして提供することも可能だが、https://github.com/ReactiveX/rxjs/blob/fd0823b99db92d1e214052ad506904b0d744d494/spec/observables/dom/webSocket-spec.ts#L14は、オーバーライド用WebSocketをグローバルにルートでそれを指定します。

+1

これは正解です。私はRxJS 5でコードを書いたので知っています;)... Node.jsのようにwindow.WebSocketまたはglobal.WebSocketを持たない環境で実行している場合、上記の方法で提供する必要があります。 –

+0

お互いに感謝します。 @BenLesh私は主な電子プロセスでいくつかのことをしています。それが私がこの問題にぶつかっている理由です。あなたが望むなら、私はノードからのクライアント使用のいくつかの文書を書いて、PRを提出するでしょう。 –

関連する問題