JavaScript + PHP и SSE — события, отправленные сервером, и MySQL

Достаточно ли я масштабируем?
Моя цель — создать модуль MySQL WebRTC. После исследования всех альтернатив для связи сервер-клиент SSE подходит для отправки уведомлений MySQL. Я хочу неизбежно заменить WebSockets.

Могу ли я действительно использовать window.onbeforeunload()?
Серверы Socket.IO и Node < lyt > $var < / lyt >, но я не могу полагаться на своих хостинг-провайдеров для открытых портов. Итак, я обнаружил, что SSE очень совместим, а также window.onbeforeunload = () => прервать (id); Представьте себе сигнальный сервер SQL->PHP->Клиент.

Как производительность?
Меня не волнует задержка, так как я использую SSE только для уведомлений. Web RTC будет использоваться только для двусторонних или трехсторонних вызовов. SSE для чата потребуется только обновить количество опросов на стороне клиента и обновить мою запись sql на стороне сервера.

Таким образом
Я управлял топографией Client<-Server<-MySQL, но как отключения работает с AJAX перед выгрузкой (например: очень маленький json менее 2kb@1kbps). Новое изобретение естественных сердцебиений из сокетов, живое аудио / видео для потоковой передачи с 2 или 3 сторонами выполняется с помощью WebRTC, но можем ли мы, RTCDataChannel (id) относительно EventSource (MySQL)

???
После мозгового штурма я думаю, что window.onbeforeunload поможет, если он синхронный, а не асинхронный. Таким образом, для хорошего пользовательского интерфейса должно работать очень быстро. Я просто хочу очистить записи MySQL. Таким образом, SSE может сказать другим пользователям: «Меня здесь больше нет».

[https://caniuse.com/#feat=eventsource]
[https://caniuse.com/#search=beforeunload]

Я не уверен, что понимаю, но, может быть, это поможет вам? developer.mozilla.org/en-US/docs/Web/API/Beacon_API

Alon Eitan 21.02.2019 12:21

Спасибо Алон! Я не знал о Beacon API; его таблицы поддержки благословлены. Наряду с хорошо совместимым API Page Visibility. Я могу эффективно вести внутреннее ведение журнала активности.

Tim Banon 23.02.2019 06:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
905
1

Ответы 1

Итак, вы хотите использовать SSE и MySQL в качестве сигнального сервера.

На самом деле, у вас есть предположение, что вам для этого нужен MySQL, а у вас его нет. Мне удалось создать надежный сигнальный сервер с простым текстом (все равно происходит обмен всего несколькими строками) вместо базы данных. См. https://github.com/nielsbaloe/webrtc-php .

Что касается ваших точек внимания:

  • SSE не очень масштабируется, ну максимум на сотню клиентов будет достаточно. Так что для всех моих небольших домашних проектов это нормально. Синтаксически SSE и Websockets одинаковы, поэтому, когда я захочу масштабироваться, код будет почти таким же.
  • Я не понимаю, почему вы говорите об window.onbeforeunload(). Нет необходимости использовать это вообще, на самом деле, не используйте это. SSE позаботится об автоматической перезагрузке веб-страницы, поэтому абсолютно не нужно ничего писать самостоятельно.
  • Производительность отличная, SSE работает так же быстро, как веб-сокеты, так как сейчас используется HTTP/1.1, он точно такой же. Только для «сообщений» это занимает больше времени, потому что открывается новый сокет. Существует небольшая задержка от сервера к клиенту, потому что клиент запрашивает новую информацию каждые несколько секунд (что я уменьшил до 1 секунды в своем проекте), однако, поскольку сигнальный сервер не имеет значения, в течение 2 секунд клиенты нашли друг друга (вместо, скажем, 400 мс).

Другие вопросы по теме