LSL связь - PullRequest
       47

LSL связь

5 голосов
/ 19 сентября 2008

Несколько лет назад я создал совместную программу по программированию в Университете Разнообразия MOO - комнате, написанной на MOOcode, которая использовала TCP / IP для связи с сервером Perl в моем кампусе для компиляции и выполнения C, Perl, Bash и других программ и возврата результаты сотрудничества MOO - все для демонстрации языков программирования в среде обучения MOO. Приложение, как правило, шутит на пяти или шести языках и с ним весело играть. Теперь я хотел бы сделать то же самое в SecondLife, используя LSL. Единственное предложение, которое я получил от этой толпы, состоит в том, чтобы использовать WWW-запрос, предположительно создавая сообщение http POST для процесса CGI. Меня никогда не волновали html-формы, поэтому я бы предпочел использовать TCP / IP или какой-либо другой протокол связи. Кто-нибудь пробовал это, кто хотел бы дать несколько советов? В SecondLife есть несколько хороших демонстрационных сайтов LSL, но я бы хотел продемонстрировать другие языки компилятора и сценариев, возможно, даже PowerShell. Дик С.

Ответы [ 5 ]

5 голосов
/ 19 сентября 2008

REST сейчас в моде для веб-сервисов. Нет никакой реальной причины переходить на уровень TCP / IP для чего-то, что из вашего описания не требует супер производительности или времени отклика. Поддержка LSL HTTP довольно хорошая, поэтому у вас не должно быть проблем.

Конечно, не идеально возвращать выходные данные ваших программ в реальном времени - для этого вам нужно будет открыть http-соединение на сервере и постоянно писать в тело страницы (в то время как клиент будет читать ). Но даже переходя туда-сюда между сервером и клиентом, вы должны получить умеренно хороший опыт.

4 голосов
/ 04 февраля 2009

Опции внешних коммуникаций LSL ограничены тремя конкретными вариантами. Официальная вики LSL предоставляет более подробную информацию о каждой опции.

  • Необработанный HTTP: запросы должны инициироваться сценарием LSL
  • XmlHTTP: запросы должны инициироваться внешней службой
  • Электронная почта: полная двусторонняя связь, но с принудительными таймерами сна.
2 голосов
/ 20 июня 2009

Функция LSH llHTTPRequest и соответствующее событие http_response - определенно ваш лучший выбор.

Вопреки предположению, сформулированному в вашем вопросе, использование http не требует использования «html форм». Полезная нагрузка POST (или PUT) может содержать данные, упорядоченные по вашему усмотрению. Интерфейс REST - это хороший способ сделать тот тип межсервисного http-взаимодействия, о котором мы говорим. Одним из преимуществ REST перед HTML или XML является то, что REST может быть гораздо менее многословным. Это важно, когда вы начинаете приближаться к пределу LSL в 2048 символов в ответах http.

Хотя у LSL есть два других метода связи с остальным интернетом (электронная почта и xml-rpc), их использование в сценариях LSL очень не рекомендуется в наши дни. Обе эти системы (как в настоящее время реализовано в Second Life) полагаются на централизованные серверы для маршрутизации сообщений в их места назначения. Это плохо масштабируется. Эти серверы находятся под постоянно растущей нагрузкой по мере роста Second Life. С другой стороны, llHTTPRequest полностью выполняется на симуляторе, на котором выполняется ваш скрипт, что означает, что вам не нужно беспокоиться о пропущенных сообщениях из-за перегруженных центральных серверов.

Наконец, скоро в LSL будет добавлена ​​новая функция, позволяющая любому сценарию действовать как http-сервер (см. http://wiki.secondlife.com/wiki/LSL_http_server).. В настоящее время (по состоянию на июнь 2009 г.) он развернут в бета-сети, но должен быть включен. основная сетка со следующим крупным обновлением. Благодаря этому добавлению многие текущие программы LSL-to-web, которые регулярно запрашивают обновленные данные на веб-сервере, вместо этого смогут получать обновления, когда они происходят.

2 голосов
/ 11 апреля 2009

Я бы хотел согласиться с Ильей.

Лучшее, что вы можете получить, если хотите, чтобы скрипт был очень отзывчивым, - это обратный вызов кода со стороны сервера, как только сервер узнает об этом с помощью XML-RPC.

Основная вики для Second Life довольно хороша для примера кода и т. Д. XML-RPC

0 голосов
/ 03 июня 2013

Как сказал Илья, REST и LSL-HTTP - это путь.

Новая реализация JSON в языке сценариев Linden должна помочь в этом. Возможно, вы захотите начать с чтения использования Json на странице LSL на официальной вики.

...