【问题标题】:rxjs5 - WebSocketSubject is not a constructorrxjs5 - WebSocketSubject 不是构造函数
【发布时间】:2018-06-05 11:32:21
【问题描述】:

所以我尝试在 node.js 环境中使用 rxjs 的 Observable.webSocket。我从文档和this 堆栈溢出帖子中看到,我需要提供我自己的 websocket 版本。我遇到的问题是,提供的两个示例都指示了一个 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 构造函数(提供所有需要的参考)的有效解决方案,并解释我做错了什么,那就太好了!

【问题讨论】:

    标签: javascript node.js websocket rxjs rxjs5


    【解决方案1】:

    require 的调用将返回包含WebSocketSubject 的模块,因此您的require 调用应如下所示:

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

    或者像这样:

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

    【讨论】:

    • 确实如此。如图所示,RxJS API 与已建立的约定不同。
    • 谢谢@cartant。这解决了这个问题,但现在我似乎遇到了与上面提到的堆栈溢出问题相同的错误:''找不到 WebSocket 构造函数''。由于某种原因,我无法满足提供有效构造函数的要求。
    • @kelibra 您的 sn-p 中的代码似乎不适用于nodejs-websocket client API。也许你应该试试ws,而不是 - 它有很多 GitHub 星星。
    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 2017-02-17
    • 2013-12-25
    • 2021-01-11
    • 2015-12-04
    • 2018-11-29
    • 2016-12-04
    • 2020-12-27
    相关资源
    最近更新 更多