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

时间:2018-07-26 12:06:53

标签: react-native websocket redux middleware stomp

上下文

我目前正在构建一个使用Web套接字提供一些实时功能的React Native应用。我已经实现了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);
    });
    }
 );
} 

这给我带来了一个错误,指出“ stomp.default.over”不是一个函数(我看过this fix但不适用)

我能够在没有STOMP的情况下成功地使用sockJS创建连接。

其他详细信息

  • 我不是在寻找基于组件的解决方案,因为中间件似乎 成为最佳做法(否则类似 react-stomp将是 完善!)。
  • 使用 thunk 的解决方案将是一个不错的选择 在应用程序的其他地方使用它。
  • 无法更改为其他协议。

0 个答案:

没有答案