Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
1

Взаимодействие клиентов

06.04.2015, 14:04. Показов 1471. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.

Хотел сначала создать тему "чат на пхп", но потом подумал, что забросают различными овощами. И назвал так.

Хотелось бы спросить о самих основах взаимодействия клиентов.
Ведь при каждом вызове сервера создается свой экземпляр скрипта. И то, что происходит в одном, не видно в другом. То есть какие-то независимые обработки можно сделать на ура.
А вот тот самый злополучный чат я даже не представляю как реализовать - ибо тут нужно чтобы клиент видел другого клиента. Ну или хотя бы сервер видел всех клиентов в рамках одного скрипта.
Сам чат меня не интересует. А интересует реализация взаимодействия клиентов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2015, 14:04
Ответы с готовыми решениями:

Взаимодействие клиентов между собой на Tcp сервере
Подключенных клиентов держу в списке. Нужно чтобы 2 клиента могли общаться между собой. Как это...

Взаимодействие клиентов и сервера по динамически меняющемуся порту
Пытаюсь сделать Сервер, к которому клиенты подключаются по заданному порту, чтобы работать со...

Сокеты: как реализовать взаимодействие сервера с неограниченным количеством клиентов
Здравствуйте, скажите пожалуйста, я тут с Visual Basic'a 6.0 пришёл, и хотел создать на C#...

Отобразить на карте количество клиентов по списку город-количество клиентов
У меня есть список количества клиентов компании, разбитый по городам. Например: Москва: 100,...

7
Native x86
Эксперт Hardware
5521 / 3278 / 936
Регистрация: 13.02.2013
Сообщений: 10,442
06.04.2015, 14:07 2
Внешнее хранилище спасет отца русской демократии. Хоть текстовый файл, хоть SQL-СУБД.
1
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
06.04.2015, 14:27  [ТС] 3
Цитата Сообщение от quwy Посмотреть сообщение
Внешнее хранилище... Хоть текстовый файл, хоть SQL-СУБД
Я тоже так и думал. Но разве это нормально? К тому же обращаться к бд - это затратно.

На самом деле я хотел бы услышать слово "сокеты". Но сам не написал, ибо еще сам не понимаю, что они дают.
Не, я читал, что они стирают различия между "сервером" и "клиентом".

Получается, что даже сокеты не в состоянии дать инструмент взаимодействия между клиентами?
0
Native x86
Эксперт Hardware
5521 / 3278 / 936
Регистрация: 13.02.2013
Сообщений: 10,442
06.04.2015, 14:39 4
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
Я тоже так и думал. Но разве это нормально? К тому же обращаться к бд - это затратно.
PHP работает пока обрабатывается запрос клиента. Страница загрузилась -> PHP-скрипт умер. Так что кроме внешнего хранения вариантов нет. Вместо полновесной БД можно использовать быстродействующие хранилища типа NoSQL- или MemCached-решения.

Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
На самом деле я хотел бы услышать слово "сокеты". Но сам не написал, ибо еще сам не понимаю, что они дают.
Сокеты позволяют установить связь между скриптом и каким-нибудь внешним сервером (или между двумя скриптами, пока они оба выполняются), вашу проблему они решать не умеют.

Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
Не, я читал, что они стирают различия между "сервером" и "клиентом".
Сокеты даже делятся на два типа: серверные и клиентские. Как они могут стереть различия?

Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
Получается, что даже сокеты не в состоянии дать инструмент взаимодействия между клиентами?
Конечно нет.
1
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
06.04.2015, 19:02  [ТС] 5
Цитата Сообщение от quwy Посмотреть сообщение
Страница загрузилась -> PHP-скрипт умер
ну а если взять и зациклить скрипт. while(true){} тогда скрипт никогда не завершится и будет висеть до тех пор, пока не завершиться командой.

Цитата Сообщение от quwy Посмотреть сообщение
Сокеты позволяют установить связь между двумя скриптами
Из всего того, что я читал - как раз этого нигде и не было. А ведь это именно то, что мне нужно.

Читал о сокетах лишь то, что они позволяют серверу обращаться к клиенту "без спроса".
0
Native x86
Эксперт Hardware
5521 / 3278 / 936
Регистрация: 13.02.2013
Сообщений: 10,442
06.04.2015, 19:13 6
Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
ну а если взять и зациклить скрипт. while(true){} тогда скрипт никогда не завершится и будет висеть до тех пор, пока не завершиться командой.
Можно, но время выполнения скриптов на реальных хостингах обычно ограничено (30-60 секунд), да пользователь будет видеть перманентную загрузку страницы, что раздражает.

Цитата Сообщение от Vhodnoylogin Посмотреть сообщение
Из всего того, что я читал - как раз этого нигде и не было. А ведь это именно то, что мне нужно.
Это мало чем поможет. Трудно реализуемо, да и крутить бесконечные циклы в скриптах -- это плохой вариант, и ресурсов сожрет больше, чем внешняя SQL-база.
0
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
07.04.2015, 00:52  [ТС] 7
Ладно, пока я реализую через бд. Потому что тест.
А вот в реальном приложении (которое мне предстоит далее) я уже не знаю, как быть.
МемКешд, говорите?..

______________________________________________

А еще я вспомнил о демоне - читал, что типа только один скрипт живет долго, а остальные только к нему обращаются. Хотя если это скрипт, то как он может жить, если "выполнения скриптов на реальных хостингах обычно ограничено (30-60 секунд)"?

Добавлено через 5 часов 9 минут
Но все-таки.
Реализация взаимодействия между клиентами (без внешнего хранилища) невозможна только для пхп или в принципе?
0
53 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 268
07.04.2015, 06:51 8
Самый нормальный способ – сохранять сообщения в базе данных. Но я этого не умею ), поэтому делаю по-другому.
Как вариант, если не нужна модерация, можно сохранять каждое сообщения в HTML-файле в виде:
<pre>$nick: $content</pre><br>
0
07.04.2015, 06:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2015, 06:51
Помогаю со студенческими работами здесь

бд клиентов
Здравствуйте! Нужна помощь: для проекта требуется ВЫМЫШЛЕННАЯ (хотя какая найдется) база данных...

База клиентов
Есть таблицы &quot;клиент&quot;, &quot;заказ&quot;, &quot; заказанные товары&quot; По таблице заказ и заказанные товары сделан...

Дубликаты клиентов
Добрый день. Есть база, в которой около 100 000 клиентов, среди которых есть клиенты близнецы и...

Сколько клиентов?
Привет. Есть серверок на котором MySQL и программы получающие данные по сети или через rs 232 их 8...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru