Я работаю с реактивным приложением, которое использует socket.io.Я успешно установил socket.ion и импортировал его в свой компонент, например:
import React, { Component } from 'react';
import io from 'socket.io-client/dist/socket.io';
const connectionConfig = {
jsonp: false,
reconnection: true,
reconnectionDelay: 100,
reconnectionAttempts: 100000/// you need to explicitly tell it to use websockets
};
socket = io('http://192.168.1.100:3001', connectionConfig);
type Props = {};
export default class Socket extends Component<Props> {
constructor(){
super();
socket.emit("Button",'pressed')
socket.on('userid',(id)=>{
this.setState({userid:{id}});
Alert.alert(id);
})
}
И код для моей серверной стороны, использующий Express:
io.on('connection', function(socket){
console.log(socket.id);
socket.on('Button',function(data){
console.log("ButtonPressed");
});
socket.emit('userid',socket.id);
}) Что странно,примерно через каждые 1.5 с консоль сервера регистрирует другой socket.id, когда я запускаю приложение на устройстве Android.Я полагаю, что socket.io успешно подключается, но снова отключается в упомянутом 1.5si, так что события socket.emit и socket.on не выполняются. Я перепробовал множество предоставленных опций, но не могу найти правильный способ исправить это.,Пожалуйста, если вы знаете обходной путь, я очень ценю.Спасибо.