react native和java之间的Socket.io
我想在react native中的应用程序和java中的服务器之间创建实时数据。我试图用WebSocket实现这一点,但它不适合 我是新来的,所以我的知识不多。我正在寻找任何解释如何做到这一点的指南或任何例子,我一直在寻找,但没有找到明确的东西 如果您还有其他选择如何在react native和java之间执行实时数据,我想听听您的意见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 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");
}
...
}