Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Доброго времени суток.Столкнулся с проблемой реализации веб сервиса на принципе клиент-сервер.Сервер я думаю писать на рнр а клиента на java подход выбрал такой:
клиент посылает запрос GET на сервер он его обрабатывает и возвращает данные в формате xml файла клиенту в виде страницы которую клиент уже сам разбирает.Подскажите приемлем такой подход, а если нет то подскажите каким образом лучше реализовать?
LIME
Отправлено: 19 Июня, 2014 - 15:28:43
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
зависит от того как часто будут совершаться запросы
нужно ли пушить актуальную информацию на клиент моментально после появления/обновления
если нет то вполне подойдет я считаю
dvd2444
Отправлено: 19 Июня, 2014 - 15:30:35
Новичок
Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Тут будет как раз что то вроде оповещений, по этому запросы нужно совершать довольно часто, что в этом случае посоветуете?
LIME
Отправлено: 19 Июня, 2014 - 15:31:19
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
websockets
dvd2444
Отправлено: 19 Июня, 2014 - 15:32:09
Новичок
Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2013
Помог: 0 раз(а)
Спасибо, буду копать в эту сторону)
OrmaJever
Отправлено: 19 Июня, 2014 - 16:29:44
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
dvd2444 пишет:
Сервер я думаю писать на рнр а клиента на java
по-моему это крайне не стандартное и странное решение. Как минимум сервер нужно писать на джаве, а клиента уже либо на джаве отдельным приложением либо на js веб приложением.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 19 Июня, 2014 - 16:35:12
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
думается мне что клиент будет на Android/IOS
OrmaJever пишет:
Как минимум сервер нужно писать на джаве
зачем?
OrmaJever
Отправлено: 19 Июня, 2014 - 16:39:59
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
LIME предлагаешь сервер вебсокетов писать на однопоточном пхп?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 19 Июня, 2014 - 16:40:58
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
LIME пишет:
а зачем несколько потоков?
суть в том что если выбор пал на веб сокеты то нужен асинхронный веб, игры например. Даже при онлайне в 100 человек в каждый момент времени 10-20 пользователей будут что-то делать, и в случае с php эти запросы будут обрабатываться по очереди и в какой-то момент он даже могут нарастать пирамидой, то есть за время обработки одного запроса приходит 2-3. В случае с маленьким месенджером на сайте можно и на пхп сделать сервер, но всё равно если будет много клиентов и все они будут слать сообщения часто то будут заметны зависания.
Я недели 2 назад задался целью написать сервер для веб чатика на с++. Сделал и даже тестили, прикольно получилось, в этом смысле многопоточность очень помогает.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 19 Июня, 2014 - 17:35:33
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
OrmaJever пишет:
и в случае с php эти запросы будут обрабатываться по очереди
счегоэйта?
будут разные процессы если уж на то пошло
не?
и выше была ссылка на асинхронный демон на пхп (Добавление)
много маленьких однопоточных процессиков))
esterio
Отправлено: 19 Июня, 2014 - 17:42:46
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
а я бы использовал nodejs. в последнее время уж очень он мне понравилься. и учитивая sockets.io чатик пишеться намного бистрее
LIME
Отправлено: 19 Июня, 2014 - 17:44:12
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
пожалуй
там же всё вкаропке вроде
OrmaJever
Отправлено: 19 Июня, 2014 - 19:13:20
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
LIME пишет:
будут разные процессы если уж на то пошло
хмм... значит ты не так понял. Ты предлагаешь пускать запросы вебсокета через веб сервер. Я не уверен что апач и нджинкс поддерживают их, но суть в том что для работы веб сокета нужно постоянное соединение клиента с сервером, да его может держать веб сервер и просто вызывать пхп когда пришёл запрос, но тогда проблема во взаимодействии между клиентами, как хранить общую информацию? Как рассылать запросы другим клиентам если у нас нету их дескрипторов?
Я же предлагал создать отдельный скрипт который будет открывать сокет и постоянно его слушать (без веб сервера, запросы напрямую к скрипту), то есть все клиенты попадают в очередь на обработку.
Именно по такому принципу я писал серверную реализацию на с++. Когда подключается клиент он сразу уходит в отдельный поток и дескриптор его подключения пишется в массив, затем например когда он пишет сообщение то оно добавляется в бд и сразу же рассылается остальным клиентам из массива. Такой подход позволяет держать список пользователей в памяти и не бегать в бд, в бд лежат только сообщения для истории.
Кстати node.js тоже сюда хорошо подойдёт.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
LIME
Отправлено: 19 Июня, 2014 - 21:18:24
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.