Jump to content


Сервер - клиент


  • Please log in to reply
5 replies to this topic

#1 Viktor

Viktor

    Новичок на форуме

  • Пользователи
  • PipPip
  • 3 posts
  • Основной цех:Строители
  • Второй цех:Скриптеры
  • SL Status: 

Posted 06.02.12 - 11:46

Вообщем вопрос следующего характера. Ставим в сл два объекта, один сервер, второй клиент.
Сервер при изменении оставляет на веб сервере свой Url и key. Клиент забирает эту информацию с web. Каким способом лучше устроить общение между двумя объектами? httrequest или email. Требуется быстродействие но оба метода как то не ахти, особенно если примы на разных симах. У кого какие идеи есть? :mellow:

#2 SOb Zemlja

SOb Zemlja

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

  • Главные администраторы
  • PipPipPipPip
  • 802 posts
  • Пол:М
  • Откуда:Россия, Москва
  • Основной цех:Строители
  • Второй цех:Скриптеры
  • SL Status: 

Posted 06.02.12 - 19:58

Я бы сказал, что лучше httrequest, проще отследить результат запроса и гарантировать отправку.
А быстродействия не будет, да…

#3 Viktor

Viktor

    Новичок на форуме

  • Пользователи
  • PipPip
  • 3 posts
  • Основной цех:Строители
  • Второй цех:Скриптеры
  • SL Status: 

Posted 07.02.12 - 08:44

А как работают вендоры по продажам, которые подгрузают несколько текстур, и при покупке отправляют товар? Работают они шустро, а товар находится на сервере.

#4 Web

Web

    Новичок на форуме

  • Пользователи
  • PipPip
  • 64 posts
  • Пол:М
  • Откуда:Харьков
  • Основной цех:Скриптеры
  • Второй цех:Строители
  • SL Status: 

Posted 07.02.12 - 13:28

Раньше работало через корявый XML-RPC, но это IMHO не выход.

Шустрее всего (по минимуму) будет вот так:

Есть сервер (Коробка с товарами и текстурами), клиент(ы) (Вендоры, напртимер) и веб-сервер (сайт с базой данных).
  • (При каждом рестарте сима) Сервер делает у себя RequestURL и, если получает урл - отправляет его на сервер с пометкой, что это урл. Если не получает (мало ли, может, какойнить мудак забил все УРЛ-ы на парселе) - отправляет на сервер свой ключ с пометкой, что урла нет. Если нам нужно, чтоб у одного юзера могло быть несколько серверов - у каждого из них есть свой ID, который задает юзер (продавец), и этот ID передается вместе с УРлом или ключом.
  • Внутри клиентов прописан этот ID, они его передают на веб-сервер и веб-сервер в ответ возвращает урл - если он есть или сообщение о том, что урла нет. Если передан урл - будем общаться с сервером через веб. Если УРла нет - клиент пишет "вендор оффлайн, звыняйте" и спустя минуту повторяем этот пункт. При первом запуске - отправляем ряд запросов и получаем с сервера ключи текстур/инфу о товарах.
  • При покупке клиент (а)передает серверу сообщение о покупке и (б)передает веб-серверу сообщение о покупке, которое там сохраняется.
  • Получив информацию о доставке товара сервер шлет покупателю товар и отправляет серверу сообщение о доставке, которое удаляет ранее сохраненное сообщение о покупке.
  • Раз в 5 минут сервер стучится на веб-сервер на предмет недоставленных покупок. Если такие есть - вебсерв возвращает первое из них и их количество. Для этого первого выполняем пункт 4. Если количество больше 1 - ждём 10 секунд и выполняем пункт 5 ещё раз.

    PS. Соб, что у тебя с твердым знаком на форуме? Почему-то жирный набор включается... А я твердый знак хочу!

LSL-скриптинг и UI-дизайн. Дорого.

#5 SOb Zemlja

SOb Zemlja

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

  • Главные администраторы
  • PipPipPipPip
  • 802 posts
  • Пол:М
  • Откуда:Россия, Москва
  • Основной цех:Строители
  • Второй цех:Скриптеры
  • SL Status: 

Posted 07.02.12 - 20:05

View PostViktor, on 07.02.12 - 08:44, said:

А как работают вендоры по продажам, которые подгрузают несколько текстур, и при покупке отправляют товар? Работают они шустро, а товар находится на сервере.

В этой фразе не верна посылка «работают шустро». Иногда товар приходит с задержкой в минуты, иногда в часы. Иногда совсем не приходит.

#6 Web

Web

    Новичок на форуме

  • Пользователи
  • PipPip
  • 64 posts
  • Пол:М
  • Откуда:Харьков
  • Основной цех:Скриптеры
  • Второй цех:Строители
  • SL Status: 

Posted 08.02.12 - 15:45

Ну ничо, теперь есть эвент transaction_result, когда по всему гриду его допилят - "совсем не приходит" больше не будет :P
LSL-скриптинг и UI-дизайн. Дорого.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users