-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|
1 | |
Взаимодействие клиентов06.04.2015, 14:04. Показов 1471. Ответов 7
Метки нет (Все метки)
Здравствуйте.
Хотел сначала создать тему "чат на пхп", но потом подумал, что забросают различными овощами. И назвал так. Хотелось бы спросить о самих основах взаимодействия клиентов. Ведь при каждом вызове сервера создается свой экземпляр скрипта. И то, что происходит в одном, не видно в другом. То есть какие-то независимые обработки можно сделать на ура. А вот тот самый злополучный чат я даже не представляю как реализовать - ибо тут нужно чтобы клиент видел другого клиента. Ну или хотя бы сервер видел всех клиентов в рамках одного скрипта. Сам чат меня не интересует. А интересует реализация взаимодействия клиентов.
0
|
06.04.2015, 14:04 | |
Ответы с готовыми решениями:
7
Взаимодействие клиентов между собой на Tcp сервере Взаимодействие клиентов и сервера по динамически меняющемуся порту Сокеты: как реализовать взаимодействие сервера с неограниченным количеством клиентов Отобразить на карте количество клиентов по списку город-количество клиентов |
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|
06.04.2015, 14:27 [ТС] | 3 |
Я тоже так и думал. Но разве это нормально? К тому же обращаться к бд - это затратно.
На самом деле я хотел бы услышать слово "сокеты". Но сам не написал, ибо еще сам не понимаю, что они дают. Не, я читал, что они стирают различия между "сервером" и "клиентом". Получается, что даже сокеты не в состоянии дать инструмент взаимодействия между клиентами?
0
|
Native x86
5521 / 3278 / 936
Регистрация: 13.02.2013
Сообщений: 10,442
|
|
06.04.2015, 14:39 | 4 |
PHP работает пока обрабатывается запрос клиента. Страница загрузилась -> PHP-скрипт умер. Так что кроме внешнего хранения вариантов нет. Вместо полновесной БД можно использовать быстродействующие хранилища типа NoSQL- или MemCached-решения.
Сокеты позволяют установить связь между скриптом и каким-нибудь внешним сервером (или между двумя скриптами, пока они оба выполняются), вашу проблему они решать не умеют. Сокеты даже делятся на два типа: серверные и клиентские. Как они могут стереть различия? Конечно нет.
1
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|
06.04.2015, 19:02 [ТС] | 5 |
ну а если взять и зациклить скрипт. while(true){} тогда скрипт никогда не завершится и будет висеть до тех пор, пока не завершиться командой.
Из всего того, что я читал - как раз этого нигде и не было. А ведь это именно то, что мне нужно. Читал о сокетах лишь то, что они позволяют серверу обращаться к клиенту "без спроса".
0
|
Native x86
5521 / 3278 / 936
Регистрация: 13.02.2013
Сообщений: 10,442
|
|
06.04.2015, 19:13 | 6 |
Можно, но время выполнения скриптов на реальных хостингах обычно ограничено (30-60 секунд), да пользователь будет видеть перманентную загрузку страницы, что раздражает.
Это мало чем поможет. Трудно реализуемо, да и крутить бесконечные циклы в скриптах -- это плохой вариант, и ресурсов сожрет больше, чем внешняя 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 | |
07.04.2015, 06:51 | |
Помогаю со студенческими работами здесь
8
бд клиентов База клиентов Дубликаты клиентов Сколько клиентов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |