Redux + React Native 带有 SockJS 中间件示例的 STOMP 协议

Sam*_*ney 5 middleware stomp websocket react-native redux

语境

我目前正在构建一个 React Native 应用程序,它使用 Web 套接字来提供一些实时功能。我已经实现并运行了 redux,我现在正在尝试创建将维护 Web 套接字连接的中间件。虽然我熟悉 React Native 和 Redux,但 Socket 连接对我来说是新的。应用程序连接到的服务器是用 Spring 构建的 - 它使用 SockJS 并使用 STOMP 协议。

问题

我不确定使用 STOMP 实现中间件的正确方法。虽然我遇到了许多启动 Socket.io 连接和 SockJ 的例子,但我一直无法找到任何使用 STOMP 的例子。我正在寻找可以帮助我的示例或库。

我试过的

在研究时,我遇到了,并尝试使用以下示例来启动和运行:

import SockJS from 'sockjs-client'
import Stomp from 'stomp'

var stompClient = null;

const ws_url = 'MYURL'
const token = 'MYTOKEN'

export const setupSocket = (dispatch) => {
 var socket = new SockJS(ws_url+token);
 stompClient = Stomp.over(socket);  
 stompClient.connect({}, function(frame) {
    setConnected(true);
    console.log('Connected: ' + frame);
    stompClient.subscribe('MY TOPIC', function(messageOutput) {
       console.log(messageOutput);
    });
    }
 );
} 
Run Code Online (Sandbox Code Playgroud)

这给我带来了一个错误,指出“stomp.default.over”不是一个函数(我查看了这个修复程序,但它不适用)

我已经能够在没有 STOMP 的情况下成功创建与 sockJS 的连接。

额外的细节

  • 我不是在寻找基于组件的解决方案,因为中间件似乎是最佳实践(否则像react-stomp这样的东西 会很完美!)。
  • 使用thunk的解决方案会很棒,因为我已经在应用程序的其他地方使用了它。
  • 无法更改为其他协议。