2017-12-22 4 views
1

그래서 rxjs의 node.js 환경에서 Observable.webSocket을 활용하려고합니다. 나는 문서에서 보았고 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

감사합니다. 그 문제를 해결하지만 지금은 위에서 언급 한 스택 오버플로 질문과 동일한 오류가 발생하는 것 같습니다. ''WebSocket 생성자를 찾을 수 없습니다. '' 어떤 이유로 나는 유효한 생성자를 제공해야한다는 요구를 만족시킬 수 없다. – kelibra

+0

@kelibra 스 니펫의 코드가 ['nodejs-websocket' 클라이언트 API] (https://github.com/sitegui/nodejs-websocket#wsconnecturl-options-callback)에 적합하지 않은 것으로 보입니다. 아마 당신은 ['ws'] (https://github.com/websockets/ws)를 시도해야합니다 - 대신 GitHub 별이 많이 있습니다. – cartant

관련 문제