问题标签 [stompjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
845 浏览

angular - NgStomp 在 InjectableRxStompConfig 中使用 beforeConnect

我正在尝试构建一个使用 websockets 的角度客户端,并且我正在使用 @stomp/ng2-stompjs 我正在遵循本指南https://stomp-js.github.io/guide/ng2-stompjs/ng2-stomp-with -angular7.html

除了我需要在 connectHeaders 中设置用于验证服务器端的令牌之外,一切都运行良好,为此我读到我需要使用 beforeConnect 函数

我尝试了各种方式,但我不明白如何使用它,它卡住或发送一个空令牌

我的 rxStompConfig:

导出类 RxStompConfig 扩展 InjectableRxStompConfig {

我从进行身份验证并设置令牌的服务中获取令牌

这是 currentToken 方法:

有人可以帮我吗?

0 投票
1 回答
5016 浏览

javascript - 使用 Stomp Client 订阅主题,但我没有收到任何通知 无法使用 React Native 并使用 Angular

我想订阅该主题,SockJS并将Stomp Client订阅放在客户端内部onConnect函数中以确保客户端已连接,这是我的配置:

在我的反应原生组件上:

我的调试显示:

angular 应用程序上显示了相同的调试,我收到了消息,但在我的 react native 应用程序上我什么也没得到。角度设置:

0 投票
0 回答
50 浏览

reactjs - 无法在本机反应中使用 Sockjs 添加聊天消息

我在我的 Flatlist 中添加聊天消息时遇到问题,因为我无法调用stompClient.subscribe ()中的任何函数 我的代码如下:

在这段代码中,我能够在 new_message 变量中获取网络消息,但无法在此处更新状态值。这种情况的任何解决方案。

0 投票
1 回答
73 浏览

spring-websocket - Direct user message doesn't work with Spring Websocket

I am trying send direct messages to user. Application hasn't done authentication so there is temporary solution for creating websocket session users as you can see in added code.

Here is my RabbitMQ listener which handle event with message and send direct message to test user user-123 via websockets:

Message is handled with rabbit listener and send with simple messaging template, but didn't arrive to frontend client in javascript.

Here is how I am trying to handle these messages:

I can see in browser console that client is successfully connected and start subscribing given channel, but no message is received.

Can you tell how to fix it? Thank you.

0 投票
1 回答
100 浏览

angular - Stomp 不订阅代理消息

我有应用程序 StompJs 从下面的服务器订阅消息:

客户:

服务器:

控制器发送消息

控制台显示框架:

[日志] 帧 {command: "CONNECTED", headers: {user-name: "7", heart-beat: "0,0", version: "1.1"}, body: "", toString: function} (tabs -home-home-module.js,第 293 行)

并订阅:

网络

a["CONNECTED\n版本:1.1\nheart-beat:0,0\nuser-name:7\n\n\u0000"]
["SUBSCRIBE\nid:sub-0\ndestination:topic/hello\n\n\ u0000"]

控制台在订阅中没有我的预期

0 投票
1 回答
572 浏览

angular - Angular:RxStomp 监视、配置、激活方法

在 Stomp 中,我们使用了这些方法:

现在我正在使用 RxStomp,但我无法找出使用这些“替换”方法的正确方法:

我得到的错误是: TS2345:'(res:any)=> void'类型的参数不可分配给'StompHeaders'类型的参数。类型“(res:any)=> void”中缺少索引签名。

0 投票
0 回答
412 浏览

spring-boot - 在客户端通过 STOMP 发送大消息失败

我想从我的 Angular-Frontend 向 SpringBoot-Server 发送一个文件(如 4/5 MB)。我通过 StompJS 使用 STOMP,每当我尝试发送文件的内容时,我的客户端都会失去连接......(我认为是因为消息大小 => 小字符串有效)。

有没有办法将一个非常大的字符串或整个文件发送到我的 java 后端?我也尝试发送字节,但服务器端的结果是空文件。谢谢!

PS:我已经更改了服务器的缓冲区大小,所以问题一定出在 stompjs-client...

连接服务(前端):

文件输入处理(前端):

消息处理(后端):

控制台输出是:

0 投票
1 回答
306 浏览

javascript - 当屏幕看起来时,websocket 连接关闭(在移动浏览器上)

我有一个到 WebSocket 的连接,它每秒向我发送数据,但是当我锁定手机屏幕时,大约 5 分钟后,WebSocket 连接会关闭,代码为 1006。

这只发生在锁定屏幕时。如果我打开另一个标签,一切都很好。

0 投票
1 回答
88 浏览

angular - Angular 中的 RxStomp 服务架构

按照this guide for using stompjs in angular,我试图找出将其用作网络套接字的架构,以通过我拥有的网络套接字订阅实时通知。

在我的根组件中,我有 2 个页面/组件,它们将使用相同的主题来订阅。在根目录(app.component.ts)中启动监视主题是否正确,或者我应该在两个各自的组件中启动监视主题,并在销毁时取消订阅?

0 投票
1 回答
243 浏览

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

我在 Angular 中使用 StompJS ng2-stompjs。请求通过 JWT 身份验证。

我写了一个 HttpInterceptor,当任何 http 响应返回错误 401 时注销用户。我想用 websocket 实现类似的行为。我的应用程序仅在某些页面上使用 websocket 通信,因此我无法跟踪其令牌是否过期。我还必须使用 Stomp,因为我必须订阅主题,据我所知,通过标准 typescript 或 rxjs websockets 是不可能的。

所以问题如下:当令牌错误时,我可以在控制台中看到以下错误:

client.js:274 WebSocket 连接到 'ws://...' 失败:HTTP 身份验证失败;没有可用的有效凭据

如果我启用了调试模式,Stomp 还会在控制台中通知我连接被关闭。但是,当我收到这样的身份验证错误时,我想知道代码级别。

在这个 ng2stomp 实现中,我只能找到一个webSocketErrors$在发生此错误时通知我的主题,但它只发回一个Event没有相关数据的打字稿。

从这个错误中,我无法判断是突然失去连接,还是后端错误,或者用户实际上是未经授权的,因此当我发现这个时我无法强制注销。

我还没有尝试使用标准的 StompJS 库,但我不确定它是否可以捕捉到这个错误。除了使用 Stomp 之外,我也不知道是否有任何其他方式可以订阅主题,因为这是我迄今为止找到的唯一解决方案。

任何建议表示赞赏。