Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Клиент-сервер

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dvd2444
Отправлено: 19 Июня, 2014 - 15:20:31
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Доброго времени суток.Столкнулся с проблемой реализации веб сервиса на принципе клиент-сервер.Сервер я думаю писать на рнр а клиента на java подход выбрал такой:
клиент посылает запрос GET на сервер он его обрабатывает и возвращает данные в формате xml файла клиенту в виде страницы которую клиент уже сам разбирает.Подскажите приемлем такой подход, а если нет то подскажите каким образом лучше реализовать?
 
 Top
LIME
Отправлено: 19 Июня, 2014 - 15:28:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




зависит от того как часто будут совершаться запросы
нужно ли пушить актуальную информацию на клиент моментально после появления/обновления
если нет то вполне подойдет я считаю
 
 Top
dvd2444
Отправлено: 19 Июня, 2014 - 15:30:35
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Тут будет как раз что то вроде оповещений, по этому запросы нужно совершать довольно часто, что в этом случае посоветуете?
 
 Top
LIME
Отправлено: 19 Июня, 2014 - 15:31:19
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




websockets
 
 Top
dvd2444
Отправлено: 19 Июня, 2014 - 15:32:09
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Спасибо, буду копать в эту сторону)
 
 Top
OrmaJever Модератор
Отправлено: 19 Июня, 2014 - 16:29:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




dvd2444 пишет:
Сервер я думаю писать на рнр а клиента на java

по-моему это крайне не стандартное и странное решение. Как минимум сервер нужно писать на джаве, а клиента уже либо на джаве отдельным приложением либо на js веб приложением.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LIME
Отправлено: 19 Июня, 2014 - 16:35:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




думается мне что клиент будет на Android/IOS
OrmaJever пишет:
Как минимум сервер нужно писать на джаве
зачем?
 
 Top
OrmaJever Модератор
Отправлено: 19 Июня, 2014 - 16:39:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




LIME предлагаешь сервер вебсокетов писать на однопоточном пхп?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LIME
Отправлено: 19 Июня, 2014 - 16:40:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а зачем несколько потоков?
(Добавление)
http://habrahabr[dot]ru/post/79377/
(Добавление)
я вообще-то ничего не предлагаю)
самому интересно
 
 Top
OrmaJever Модератор
Отправлено: 19 Июня, 2014 - 17:31:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




LIME пишет:
а зачем несколько потоков?

суть в том что если выбор пал на веб сокеты то нужен асинхронный веб, игры например. Даже при онлайне в 100 человек в каждый момент времени 10-20 пользователей будут что-то делать, и в случае с php эти запросы будут обрабатываться по очереди и в какой-то момент он даже могут нарастать пирамидой, то есть за время обработки одного запроса приходит 2-3. В случае с маленьким месенджером на сайте можно и на пхп сделать сервер, но всё равно если будет много клиентов и все они будут слать сообщения часто то будут заметны зависания.

Я недели 2 назад задался целью написать сервер для веб чатика на с++. Сделал и даже тестили, прикольно получилось, в этом смысле многопоточность очень помогает.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LIME
Отправлено: 19 Июня, 2014 - 17:35:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




OrmaJever пишет:
и в случае с php эти запросы будут обрабатываться по очереди
счегоэйта?
будут разные процессы если уж на то пошло
не?
и выше была ссылка на асинхронный демон на пхп
(Добавление)
много маленьких однопоточных процессиков))
 
 Top
esterio
Отправлено: 19 Июня, 2014 - 17:42:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




а я бы использовал nodejs. в последнее время уж очень он мне понравилься. и учитивая sockets.io чатик пишеться намного бистрее
 
 Top
LIME
Отправлено: 19 Июня, 2014 - 17:44:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




пожалуй
там же всё вкаропке вроде
 
 Top
OrmaJever Модератор
Отправлено: 19 Июня, 2014 - 19:13:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




LIME пишет:
будут разные процессы если уж на то пошло

хмм... значит ты не так понял. Ты предлагаешь пускать запросы вебсокета через веб сервер. Я не уверен что апач и нджинкс поддерживают их, но суть в том что для работы веб сокета нужно постоянное соединение клиента с сервером, да его может держать веб сервер и просто вызывать пхп когда пришёл запрос, но тогда проблема во взаимодействии между клиентами, как хранить общую информацию? Как рассылать запросы другим клиентам если у нас нету их дескрипторов?

Я же предлагал создать отдельный скрипт который будет открывать сокет и постоянно его слушать (без веб сервера, запросы напрямую к скрипту), то есть все клиенты попадают в очередь на обработку.

Именно по такому принципу я писал серверную реализацию на с++. Когда подключается клиент он сразу уходит в отдельный поток и дескриптор его подключения пишется в массив, затем например когда он пишет сообщение то оно добавляется в бд и сразу же рассылается остальным клиентам из массива. Такой подход позволяет держать список пользователей в памяти и не бегать в бд, в бд лежат только сообщения для истории.

Кстати node.js тоже сюда хорошо подойдёт.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LIME
Отправлено: 19 Июня, 2014 - 21:18:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




оооой
(Добавление)
читать это не про нас
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB