react native和java之间的Socket.io

react native和java之间的Socket.io,java,react-native,socket.io,Java,React Native,Socket.io,我想在react native中的应用程序和java中的服务器之间创建实时数据。我试图用WebSocket实现这一点,但它不适合 我是新来的,所以我的知识不多。我正在寻找任何解释如何做到这一点的指南或任何例子,我一直在寻找,但没有找到明确的东西 如果您还有其他选择如何在react native和java之间执行实时数据,我想听听您的意见 谢谢我不是这些主题的专家,但我正在使用React JS和Java(Spring boot)开发类似的功能。最近我发现了一种使用Stomp和SockJS的方法 这

我想在react native中的应用程序和java中的服务器之间创建实时数据。我试图用WebSocket实现这一点,但它不适合

我是新来的,所以我的知识不多。我正在寻找任何解释如何做到这一点的指南或任何例子,我一直在寻找,但没有找到明确的东西

如果您还有其他选择如何在react native和java之间执行实时数据,我想听听您的意见


谢谢

我不是这些主题的专家,但我正在使用React JS和Java(Spring boot)开发类似的功能。最近我发现了一种使用Stomp和SockJS的方法

这是我反应JS的代码

import * as Stomp from 'stompjs';
import * as SockJS from 'sockjs-client';

...

  let timeout = 5000;
  let timeoutCounter = 0;
  const maxTimeoutCounter = 10;

  const connect = () => {

    const ws = new SockJS("http://localhost:8080/socket");
    this.stompClient = Stomp.over(ws);

    let that = this;

    that.stompClient.connect({}, function(frame) {

      that.stompClient.subscribe("/queue/update", (message) => {
        const data = JSON.parse(message.body);
        // Some code here
      });

    }, (error) => {
      timeoutCounter++;

      if (timeoutCounter < maxTimeoutCounter) {
        setTimeout(connect, timeoutCounter * timeout);
      }
    });
  }

到目前为止你试过什么?:)@Rab我一直在尝试web套接字,但没有成功谢谢你的回答。。。你认为它能和react native一起工作吗?您从“stompjs”和“sockjs客户端”库中得到了什么?你能提供setTimeout函数的代码吗?另一个问题是,如果你收到一条信息,你如何处理?如何再次运行渲染功能?我认为在react native中应该可以工作。我使用“npm安装sockjs客户端”和“npm安装stompjs”安装了这些库。setTimeout函数是Javascript的一个通用函数。当我从服务器收到消息时,我只是启动一个redux操作,这样当redux状态改变时就会调用render方法。
import java.util.LinkedList;
import java.util.Map;

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
import org.springframework.messaging.simp.config.ChannelRegistration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.messaging.simp.stomp.StompCommand;
import org.springframework.messaging.simp.stomp.StompHeaderAccessor;
import org.springframework.messaging.support.ChannelInterceptor;
import org.springframework.messaging.support.MessageHeaderAccessor;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration implements WebSocketMessageBrokerConfigurer {

   @Override
   public void registerStompEndpoints(StompEndpointRegistry registry) {

      registry
         .addEndpoint("/socket")
         .setAllowedOrigins("*")
         .withSockJS();
   }

   public void configureMessageBroker(MessageBrokerRegistry registry) {

      registry
         .setApplicationDestinationPrefixes("/app")
         .enableSimpleBroker("/queue/update");
   }
   ...
}