|
5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 93
|
|
Использование сокетов для сервера с множеством клиентов17.05.2016, 12:14. Показов 908. Ответов 7
Метки нет (Все метки)
Здравствуйте.
Суть в том: есть веб-приложение (работает локально внутри заведения. Клиентов не больше 250, но, скорее всего, маловероятно, что одновременно их будет больше 10), через него, по сути, происходит чтение/запись информации в базу данных. Сейчас у меня просто обновляется страница каждые 30 секунд, но теперь нужно переделать под сокеты. Простые реализации с одним клиентом я нашел, для множественных, как я понял, нужно использовать socket_select, но я не понимаю, как с ним работать. Сама идея такова: в случае записи в БД серверу отправляется сообщение об этом, а он в ответ сообщает клиентам о том, что нужно перезагрузить страницу (ну или часть страницы, так как давно собирался начать изучения Ajax-а, а тут будет повод). Или это неправильный подход? Никогда раньше не работал с сокетами, можете помочь статьями или примерами? Есть ли другие относительно простые (в том плане, чтобы не требовали полного переписывания имеющегося кода или серьезных настроек на сервере - я пока работаю локально через Denwer, а развертывать будет другой человек) реализации? Видел несколько уроков на nginx, но я с ним незнаком в принципе, и в уроках использовался JavaScript, не уверен, что там все нормально будет работать в IE8. Заранее спасибо.
0
|
|
| 17.05.2016, 12:14 | |
|
Ответы с готовыми решениями:
7
Создание сокетов для 10 клиентов Сервер не отправляет сообщ для всех клиентов (ЧАТ с использ-ем сокетов) |
|
5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 93
|
|
| 01.07.2016, 13:07 [ТС] | |
|
С этим частично разобрался. Может кто подсказать две вещи: пока тестирую на Апаче, в браузере образно говоря запускаю server.php и несколько client.php в которых бесконечный цикл по обмену сообщениями, но при закрытии в браузере страницы любого клиента соединение остается. Как можно отслеживать подобное событие и закрывать соединение?
Второй вопрос: даже если закрываю соединение клиента через socket_close() (и со стороны клиента, и со стороны сервера), то память не освобождается.
0
|
|
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||
| 03.07.2016, 10:23 | |||
|
1
|
|||
|
5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 93
|
|||
| 05.07.2016, 14:50 [ТС] | |||
|
0
|
|||
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
||
| 05.07.2016, 16:37 | ||
|
1
|
||
|
5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 93
|
||
| 06.07.2016, 09:18 [ТС] | ||
|
0
|
||
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||
| 06.07.2016, 10:41 | |||
|
1
|
|||
|
5 / 5 / 0
Регистрация: 16.05.2012
Сообщений: 93
|
||
| 06.07.2016, 12:58 [ТС] | ||
|
Также прошу меня простить: я, написав и вчитавшись в предыдущее сообщение, начал понимать, что этот вопрос уже не имеет отношения к сетям - соединение со стороны сервера разорвется, когда я найду способ прерывать цикл при закрытии/обновлении страницы в браузере. Добавлено через 46 минут В общем, решил эту проблему через echo и connection_status(), просто я её искал не там, где надо было. Спасибо за помощь.
0
|
||
| 06.07.2016, 12:58 | |
|
Помогаю со студенческими работами здесь
8
Использование сокетов для загрузки исходного кода сайта Клиент-сервер со множеством клиентов java Создание сервера для работы удаленных клиентов Сокет сервера для нескольких клиентов без потоков?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|