使用 Angular 应用程序使用 stompjs 的问题
Posted
技术标签:
【中文标题】使用 Angular 应用程序使用 stompjs 的问题【英文标题】:problem in using stompjs using angular application 【发布时间】:2020-01-06 14:37:37 【问题描述】:这是我想要与 websocket 通信的应用程序组件 ts 的代码(为此我安装了 sockjs-client
和 stompjs
)。我不知道如何解决这个错误。
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 捕获未经授权的错误?