标签: stompjs

WebSocket Stomp over SockJS - http自定义标头

我在我的javascript客户端中使用stomp.js而不是SockJS.我正在使用websocket连接

stompClient.connect({}, function (frame) {
Run Code Online (Sandbox Code Playgroud)

stomp over sockJS连接有2个http请求:

  1. 请求/ info
  2. http升级请求

客户端发送所有cookie.我也想发送自定义标头(例如XSRF标头),但没有找到办法做到这一点.将不胜感激任何帮助.

spring stomp websocket sockjs stompjs

15
推荐指数
2
解决办法
2万
查看次数

如何处理 stompjs Web 套接字中的互联网连接丢失

我在我的 Angular 项目中使用 stomp js,还在 java spring 中使用 WebSocket 作为后端。

这里是这样的场景:如果客户端电脑中的互联网连接丢失,那么如何通知客户端它们与 WebSocket 连接已断开,以及如何在客户端再次获得互联网连接时自动重新连接?

我正在使用@stomp/ng2-stompjs“^7.2.0”。提前致谢

java stomp spring-websocket stompjs angular8

7
推荐指数
0
解决办法
2553
查看次数

我们如何在浏览器中导入stompjs?或者类似stompjs的东西?

我正在尝试按照 Spring教程使用websockets.我webpack用来捆绑我的代码并将babel其转换ES6.我试图sockjs用一个正常的import声明来引入.

import SockJS from 'sockjs'
Run Code Online (Sandbox Code Playgroud)

但是在webpack运行时,我会丢失模块错误,

ERROR in ./~/stompjs/lib/stomp-node.js
Module not found: Error: Cannot resolve module 'net' in /Users/name/Developer/cubs-stack-4/cubs-webapp/node_modules/stompjs/lib
 @ ./~/stompjs/lib/stomp-node.js 14:8-22

ERROR in ./~/websocket/package.json
Module parse failed: /Users/name/Developer/cubs-stack-4/cubs-webapp/node_modules/websocket/package.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
|   "_args": [
|     [
|       "websocket@latest",
 @ ./~/websocket/lib/version.js 1:17-43
Run Code Online (Sandbox Code Playgroud)

主要是因为它有望继续运行Node.

我有两个问题.

首先,如何stompjs …

stompjs

6
推荐指数
3
解决办法
6751
查看次数

使用 Nodejs /Javascript 进行 Tibco EMS 连接

我们如何从 Nodejs 环境连接到 Tibco。

有没有人尝试使用任何 nodejs 包(如 stompjs 或任何 javascript 组件)连接到 Tibco EMS 队列。

javascript tibco-ems node.js stompjs

5
推荐指数
1
解决办法
3081
查看次数

Spring websocket @messagemapping反序列化问题java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换

我正在客户端用StompJS编写一个spring websocket应用程序.

在客户端,我打算发送一个对象列表,并在服务器端映射到java对象时,它将自身转换为LinkedHashMap

我的客户端代码是

function stomball() {
         stompClient.send("/brkr/call", {}, JSON.stringify(listIds));
     }
Run Code Online (Sandbox Code Playgroud)

Listids看起来像

[{
    "path": "/a/b/c.txt",
    "id": 12
}, {
    "path": "/a/b/c/d.txt",
    "id": 13
}]
Run Code Online (Sandbox Code Playgroud)

List Id对象看起来像

public class ListId {

    private String path;

    private Long id;

    //getters and setters...
}
Run Code Online (Sandbox Code Playgroud)

控制器看起来像这样

@MessageMapping("/call" )
@SendTo("/topic/showResult")
public RetObj process(List<ListId> listIds) {
   if (!listIds.isEmpty()) {
        for(ListId listId: listIds) {

        }
}
Run Code Online (Sandbox Code Playgroud)

所以我得到一个java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为com.blah.ListId

然而,当我使用RestMapping使用普通的Spring控制器时,它工作正常,是否有任何弹簧MessageMapping注释将对象映射到java的方式与传统方式不同我不知道为什么不转换为ListID

java stomp spring-websocket stompjs

5
推荐指数
1
解决办法
1025
查看次数

如何在汇总中导入stompjs

在使用打字稿的ng2应用程序上我使用stompjs,它没有汇总它工作正常.

我正在导入它:

import {Stomp} from "stompjs"

运行汇总后,我得到"EXCEPTION:Stomp is not defined"

我的汇总配置是:

import rollup from 'rollup';
import nodeResolve from 'rollup-plugin-node-resolve';
import commonjs    from 'rollup-plugin-commonjs';


export default {
 entry: 'aot/app/src/boot-aot.js',
 dest: 'dist/bundle.es2015.js', // output a single application bundle
 sourceMap: true,
 useStrict: false,
 format: 'iife',
 treeshake: true,
 plugins: [
  nodeResolve({
    module: true,
    jsnext: true,
    main: true,
    browser: true,
    extensions: ['.js']
  }),
  commonjs({
    include: [
      'node_modules/rxjs/**',
      'node_modules/stompjs/**'
    ],
    namedExports: {
      'node_modules/stompjs/lib/stomp.min.js': [ 'Stomp' ]
    }
  })
 ]
}
Run Code Online (Sandbox Code Playgroud)

stompjs的TypeScript类型定义文件

declare module "stompjs" {

  export …
Run Code Online (Sandbox Code Playgroud)

typescript stompjs rollupjs angular

5
推荐指数
1
解决办法
495
查看次数

如何在spring mvc中使用websocket检测客户端已断开连接

我希望能够检测到用户何时失去了与服务器的连接(关闭的选项卡、失去了互联网连接等)我在我的客户端上通过 Sockjs 使用 stompjs,在我的服务器上使用 spring mvc websockets。

我如何检测客户端何时失去连接。这是我如何配置我的 websocket 消息 brocket:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {
    @Autowired
    private TaskScheduler scheduler;

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic").setHeartbeatValue(new long[]{10000, 10000}).setTaskScheduler(scheduler);
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/web").setAllowedOrigins("*").withSockJS();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器类,它实际上处理传入的套接字消息:

@RestController
@CrossOrigin
public class WebMessagingController {

    @MessageMapping("/chat/message")
    public void newUserMessage(String json) throws IOException {
        messagesProcessor.processUserMessage(json);
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道如果我使用从TextWebSocketHandler扩展的类,我将有 bean 能够覆盖在客户端连接和断开连接时调用的方法,但我认为这不适用于sock-js 客户端。谢谢你。

spring-mvc sockjs spring-websocket stompjs

1
推荐指数
1
解决办法
4730
查看次数