使用 Angular 应用程序使用 stompjs 的问题

Posted

技术标签:

【中文标题】使用 Angular 应用程序使用 stompjs 的问题【英文标题】:problem in using stompjs using angular application 【发布时间】:2020-01-06 14:37:37 【问题描述】:

这是我想要与 websocket 通信的应用程序组件 ts 的代码(为此我安装了 sockjs-clientstompjs)。我不知道如何解决这个错误。

import  Component  from '@angular/core';
import * as Stomp from 'stompjs';
import * as SockJS from 'sockjs-client';
import $ from 'jquery';

@Component(
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
)
export class AppComponent 
  private serverUrl = 'http://localhost:8080/socket'
  private title = 'WebSockets chat';
  private stompClient;

  constructor()
    this.initializeWebSocketConnection();
  

  initializeWebSocketConnection()
    let ws = new SockJS(this.serverUrl);
    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);
        
      );
    );
  

  sendMessage(message)
    this.stompClient.send("/app/send/message" , , message);
    $('#input').val('');
  


这是我执行 ng-serve 的以下错误:

ERROR in ./node_modules/stompjs/lib/stomp-node.js
Module not found: Error: Can't resolve 'net' in 'C:\Users\drnic\Desktop\Messaging app\Front-end\bantachat2\node_modules\stompjs\lib'

【问题讨论】:

我已经安装了 stompjs 和 sockjs-client 【参考方案1】:

使用命令安装依赖包“net”

'npm i net -S'

【讨论】:

【参考方案2】:

Node stomp 是一个服务器端 node.js 包。这意味着需要安装和使用整个 node.js 堆栈,而在 Angular 应用程序中并非如此。

这就是为什么问题是库找不到net 依赖项的原因。所以基本上你安装了错误的东西。

Check a very similar issue here

https://github.com/jmesnil/stomp-websocket/blob/master/lib/stomp.js

是浏览器文件。节点一只能在 NodeJS 环境中工作。它调用 require 使用一些 Node 模块。

【讨论】:

以上是关于使用 Angular 应用程序使用 stompjs 的问题的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过 StompJS (ng2Stomp) 通过 websocket 捕获未经授权的错误?

在 React Native 中使用 @stomp/stompjs 的 Web 套接字连接

StompJS使用文档总结

无法使用 @stomp/stompjs 订阅主题

stompjs初探

没有 SockJS/StompJS 的 Spring STOMP 服务器