Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631

Сигнал с Node сервера в html

09.01.2018, 20:00. Показов 806. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите технологию пожалуйста!

Надо:
Веб-страница открылась и не закрывается/перегружается у клиента несколько часов.
При этом нужен некий "канал" (сокет?) от сервера к клиенту для отправки МИНИМАЛЬНЫМ ТРАФИКОМ требование обновить данные.
При этом связь может иногда разрываться (интернет пропал) и клиент должен автоматически делать реконект (пингом проверять?)

Посетителей может быть миллионы и ежесекундный опрос сервера на "наличие новостей" - забьет сервер. А новости бывают редко и не для всех.

Подскажите что для подобного можно использовать? есть готовые библиотеки?
Нагуглил socket.io, но первый же пример при старте начал усиленно опрашивать сервер (долбил раз в секунду без единого обрабочика) некую html страницу, а не использовал тихий/пассивный сокет. Не так использовал? Плохо настрои?
...или что-то другое посоветуете?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2018, 20:00
Ответы с готовыми решениями:

При запуске сервера node js ошибка
в чем проблема?

Как с локального сервера обратиться к Node JS?
Я ламер в Node JS и вообще во всех этих серверных штучках.Как с сайта на локальном сервере (Denwer естес-но) обратиться к написанному...

Sockjs и node js. Резкое отсоединение от сервера
Добрый день, есть сайт, на котором чат пытаюсь написать с помощью sock js и node вроде все хорошо, но бывает неожиданно клиент...

3
28 / 22 / 15
Регистрация: 29.11.2017
Сообщений: 75
10.01.2018, 18:08
Ну, вроде для таких целей сокеты норм подходят.
Цитата Сообщение от andyj Посмотреть сообщение
Нагуглил socket.io, но первый же пример при старте начал усиленно опрашивать сервер (долбил раз в секунду без единого обрабочика) некую html страницу
Сокеты не должны долбиться за состоянием к серверу. Они соединяются через протокол тисипи и ждут каких-либо событий.
https://socket.io/docs/server-api/
0
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
10.01.2018, 19:03  [ТС]
Цитата Сообщение от МихаилБасов Посмотреть сообщение
Сокеты не должны долбиться за состоянием к серверу.
Речь не о чистых сокетах, а о socket.io! "Чистый" сокет надо еще и "обезопасить" на случай разрыва связи или перезагрузки сервера. А в идеале уведомить юзера о переходе в оффлайн. Слышал что все это предусмотрено в socket.io "из коробки".

Поэтому попробовал разобраться в "сокете в оболочке" - готовой "библиотеке предусматривающей все".
...и первый же пример чистого сокет-ио оказалось что "долбит" сервер по адресу my.com/иКучаКлючей (типа a=wer&b=werw) - моя нода пытается "отдать не существующий файл" по этой URL. При этом в html одна строчка "подсоединиться к socket.io-серверу" (даже без указания имени сервера и порта) и реактор "на входящие сообщения" выводящий сообщение в консоль - ВСЕ!

...моя задача не полноценный протокол обмена, а просто сообщить определенному клиенту что "что-то изменилось"(а дальше по обычному ajax) с "минимальным трафиком" в час (мобильный инет/в роуминге) и "нагрузкой на сервер"(100к json-запросов в секунду заставят сервер работать лишь "на уведомления").

...почти разобрался со связкой node-ws(server) + Javascript+WebSocketServer(client). Раз в 30 сек. шлю "+" клиентам чтобы они знали что сервер онлайн (иконку-"индикатор" меняю на странице). Но при попытке повторно соединиться с пропавшим(вручную оключил) сервером получаю в консоль браузера ошибку ярко-красным цветом:
WebSocket connection to 'ws://localhost:40510/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
try catch не попомогло сделать процесс "тихим". (гугл тоже не помог). Может знаете как обойти?
0
28 / 22 / 15
Регистрация: 29.11.2017
Сообщений: 75
11.01.2018, 11:22
Цитата Сообщение от andyj Посмотреть сообщение
моя задача не полноценный протокол обмена, а просто сообщить определенному клиенту что "что-то изменилось"(а дальше по обычному ajax) с "минимальным трафиком" в час (мобильный инет/в роуминге) и "нагрузкой на сервер"(100к json-запросов в секунду заставят сервер работать лишь "на уведомления").
Если в реалтайме - берите socket.io + делайте идентификацию пользователей.

Цитата Сообщение от andyj Посмотреть сообщение
и первый же пример чистого сокет-ио оказалось что "долбит" сервер по адресу my.com/иКучаКлючей (типа a=wer&b=werw) - моя нода пытается "отдать не существующий файл" по этой URL
Киньте ваш код. Кажется, так устроены изначально транспорты на клиенте, попробуйте убрать апдейт и врубить канал вебСокет.
Также внутренности - https://github.com/socketio/engine.io
И стоит посмотреть настройки клиента https://socket.io/docs/client-api/

Добавлено через 7 минут
Цитата Сообщение от andyj Посмотреть сообщение
WebSocket connection to 'ws://localhost:40510/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
Хз. Код киньте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2018, 11:22
Помогаю со студенческими работами здесь

Тормозит простяцкий пример сервера на Node.js
В книге Пауэрс "Изучаем Node.js" листинг 1.4: var http = require('http'); var fs = require('fs'); var counter = 0; ///...

Можно ли с сервера, написанного на Node.js, передать параметры на сайт
Здравствуйте! У меня вопрос на понимание Node.js В общем, мне нужно сделать следующее: У меня есть сайт на котором написана логика на ява...

Можно ли настроить vps сервера apache под node js
Здравствуйте Можно ли настроить vps сервера apache под node js Я никогда ничего не использовал хостинг

Постоянный звуковой сигнал от сервера HP
Подскажите с чего начать исследование причины звукового сигнала типа сигнал(полсекунды)-пропуск(полсекунды)-сигнал(полсекунды)-... и так...

Реализовать класс Node ([Error] field 'next' has incomplete type 'Node')
#include <iostream> using namespace std; class Node { private: int value; Node next; public:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru