【问题标题】:Error using SockJS in Angular5 - "sockjs_client_1.SockJS is not a constructor"在 Angular5 中使用 SockJS 时出错 - “sockjs_client_1.SockJS 不是构造函数”
【发布时间】:2018-03-15 16:06:12
【问题描述】:

我现在正在关注这个tutorial,我已经到了关键点,我必须在我的 Angular5 组件中实例化我的 SockJS-Client。

这是我所做的:

  1. 我执行了以下命令来安装所需的库:

    npm install stompjs
    npm install sockjs-client
    npm install jquery
    
  2. 我像这样将库导入到我的组件中:

    import { Stomp } from 'stompjs';
    import { SockJS } from 'sockjs-client';
    import $ from 'jquery';
    
  3. 最后我尝试实例化 SockJS:

    constructor(){
        this.initializeWebSocketConnection();
    }
    
    initializeWebSocketConnection(){
        let ws = new SockJS(this.serverUrl);  //<- This is the line causing the error
        this.stompClient = Stomp.over(ws);
        let that = this;
        this.stompClient.connect({}, function(frame) {
            that.stompClient.subscribe("/chat", (message) => {
                if(message.body) {
                    $(".chat").append("<div class='message'>"+message.body+"</div>")
                    console.log(message.body);
                }
            });
        });
    }
    

我得到的错误是:

错误错误:未捕获(承诺中):TypeError:sockjs_client_1.SockJS 不是构造函数

我找不到关于这个问题的任何信息。

【问题讨论】:

    标签: angular typescript websocket angular5 sockjs


    【解决方案1】:

    试试:

    import * as SockJS from 'sockjs-client';
    

    import SockJS from 'sockjs-client';
    

    【讨论】:

    • 第一个选项对我有用,非常感谢!!!您能解释一下为什么我的选择会导致该错误吗?
    • 我只能说这是我在另一个使用 SockJS 的示例中看到的导入方式。我想这只是模块如何定义的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 2020-12-28
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    相关资源
    最近更新 更多