Я работаю с событиями, отправленными сервером, с весенней загрузкой в серверной части и реакцией-native / expo в качестве клиента. Для обработки события отправки сервером на клиенте я использую act-native-event-source . Но проблема в том, что клиент получает только некоторые события. Вот сценарий:
- идентификатор события 0 -> не получено
- идентификатор события 1 -> получено
- идентификатор события 2 -> не получено
- идентификатор события 3 -> получено
- идентификатор события 4 -> не получено
- идентификатор события 5 -> получено ...
на стороне сервера мы Попытки различных хаков и журналов показывают, что сервер фактически отправляет каждое событие, но клиент expo, похоже, игнорирует некоторые события (1 событие в двух).
Вот как мы инициализируем соединение для получения отправленных сервером событий:
listen() {
const options = {
headers: {
Authorization: `Bearer ${this.userToken}`,
},
};
let url = `${TEST_URL}${this.user.id}`;
try {
console.log('starting stream ...');
const eventName = `dataSet-created${this.user.id}`;
this.eventSource = new RNEventSource(url, options);
this.eventSource.addEventListener(eventName, event => {
console.log('stream event received', event);
});
this.eventSource.addEventListener('error', e => {
console.log('stream listener error', e);
});
console.log('eventSource stream ...', this.eventSource);
} catch (e) {
console.log('start stream error', e);
}
}