rxjs5 - 找不到WebSocket构造函数

时间:2016-04-26 04:38:35

标签: typescript commonjs rxjs5

我正在尝试做一些基本的事情,但这完全是在逃避我。我正试图在RxJS5中从Observable创建一个rxjx/observable/dom/webSocket,但我没有使用打字稿或es6模块......只是简单的'很好的共同点.JS。我已经设法根据文档正确修补了Observable,但每当我尝试传入主题所期望的字符串时,我都会收到错误:

no WebSocket constructor can be found[source]

我还没来得及深入研究TypeScript,但从我所知道的,我已经满足了构造函数的条件,我也看了一下测试规范,{{3} } Observable.webSocket('ws://host:port');我正在尝试,但我仍然收到错误。

我试过了:

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'
});

当使用commonJS消费时,有人可以帮我弄清楚如何使用webSocket they use the function in the same way#executors X #executor-cores Observable吗? (节点v5.11)

1 个答案:

答案 0 :(得分:2)

这不是关于TypeScript的,您可能需要提供websocket到WebSocketSubject的构造函数。

在测试用例中,https://github.com/ReactiveX/rxjs/blob/fd0823b99db92d1e214052ad506904b0d744d494/spec/observables/dom/webSocket-spec.ts#L14指定它在root中全局覆盖websocket,同时它也可以将它作为配置对象提供,如

var ws = require('websocket');

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

即使在TypeScript或ES15 RxJS模块中也需要。