Здравствуйте, гость ( Вход | Регистрация )

> Чат, Интегрированный С Сайтом.
Stark
сообщение 16.9.2011, 17:11
Сообщение #1


**

Neophyte
Сообщений: 36
Регистрация: 3.9.2008
Группа: Пользователи
Наличность: 0
Пользователь №: 11.064



Пока что интеграция только в таком виде: игроки на сервере отправляют сообщение в чат, и оно практически мгновенно отображается и в игре и на сайте.
При желании не сложно сделать отправку сообщения из веба в игру, но это задача специфическая, для каждого сервера и ее нужно решать по-разному, при желании я расскажу как это сделать.

Работает все с помощью сервиса - Partcl
Принцип можно разделить на 2 этапа:

Публикация сообщения
При добавлении нового сообщения в чат, рануо дергает спец урл, которую вы получаете зарегистрировавшись на партикле, примерно такого вида:
Код
http://partcl.com/publish?publish_key=publish_key&id=chat_message&value=msg

где:
publish_key - секретный ключ, с помощью которого можно публиковать сообщения.
chat_message - имя переменной, используемой для сообщений чата.
msg - текст сообщения.

Отображение на сайте
На ваш сайт вставляется javascript-код партикла, который при появлении нового сообщения, отображает его там, где вы захотите. Для этого просто вставьте в нужное место такой хтмл код:
Код
<partcl cell_id="chat_message" method="append"></partcl>


Установка:
1) Регистрируемся тут - http://partcl.com, после чего на страничке юзера копируем свой publish_key.

Настройка RunUO:
2) Закидываем файлы Chat.cs и WebRequestState.cs в любую папку, внутри Scripts (например в Scripts/Custom/)
3) Открываем Chat.cs и в 12 строку вставляем ваш publish_key

Настройка сайта:
4) Со страницы юзера копируем ваш web_key.
5) Открываем шаблон вашего сайта, перед закрывающим тегом </head> подключаем скрипт партикла
Код
<script id="partcl_client_script" web_key="web_key" src="http://partcl.com/partcl.full.js"></script>

вместо web_key вставляем свое значение.
6) В любое место, где хотите отображать чат, вставляем этот тег:
Код
<partcl cell_id="chat_message" method="append"></partcl>


Отправляются сообщения, с помощью команды [c (Изменить можно в файле Chat.cs)

Все готово, можете пользоваться (IMG:style_emoticons/default/smile.gif)

Я являюсь одним из разработчиков партикла, так что могу ответить на любые ваши вопросы. В дальнейшем, если будет интерес, с помощью этого сервиса, можно сделать реалтайм отображение на сайте любых событий происходящих на сервере. Или страничку, для каждого персонажа, с основной инфой по нему (стр, декс, инт, хп и т.д.). Если очень захотеть, можно отображать эту инфу, скажем в подписи людей на форуме (IMG:style_emoticons/default/wink.gif) Вобщем придумать можно еще много разного, было-бы желание.

Сейчас сервис в стадии тестирования, но работает достаточно стабильно. Бесплатный тарифный план, думаю подойдет большинству типичных серверов (если в день вы будете отправлять меньше 100 000 сообщений), если народу у вас много, то премиум акаунт стоит 9.99 уе в месяц, для хорошего сервера не так много (IMG:style_emoticons/default/wink.gif) В любом случае, пока что билинговая система не работает и вы можете пользоваться системой абсолютно бесплатно, без ограничений (IMG:style_emoticons/default/smile.gif)



Прикрепленные файлы
Прикрепленный файл  partcl_chat.zip ( 1,91 килобайт ) Кол-во скачиваний: 601
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Warstone
сообщение 15.6.2012, 22:08
Сообщение #2


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Зависит от нагрузки. Вообще - тебе не надо весь чат, а только последние 100 строчек, допустим...
Я-бы для такой цели просто RabbitMQ использовал. Она для таких целей очень хорошо подходит. Но вопрос нагрузки... УОшная нагрузка - никакая, поэтому любое решение будет работать.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 16.6.2012, 17:42
Сообщение #3


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Цитата(Warstone @ 15.6.2012, 23:08) *

Зависит от нагрузки. Вообще - тебе не надо весь чат, а только последние 100 строчек, допустим...
Я-бы для такой цели просто RabbitMQ использовал. Она для таких целей очень хорошо подходит. Но вопрос нагрузки... УОшная нагрузка - никакая, поэтому любое решение будет работать.

RabbitMQ, в данном случае, - будет лишь частным случаем реализации RPC.. ;-)


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 17.6.2012, 0:01
Сообщение #4


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Цитата(Destruction @ 16.6.2012, 18:42) *

RabbitMQ, в данном случае, - будет лишь частным случаем реализации RPC.. ;-)

Да, а еще если сам сайт на пхп - то дергать PHP через RPC из RabbitMQ - будет не так уже просто, как хотелось бы (тут кстати можно устроить прямой коннект юзера к RabbitMQ на HTML5/Flash, но это уже из разряда глупостей :-D)..

Цитата(Warstone @ 16.6.2012, 21:43) *

Только это не будет пиаром своего сервиса )) Так как на ErLang'е я писать не умею.

А неумение писать на эрланг тут каким боком?


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 17.6.2012, 13:30
Сообщение #5


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Цитата(Destruction @ 17.6.2012, 1:01) *
Да, а еще если сам сайт на пхп - то дергать PHP через RPC из RabbitMQ - будет не так уже просто, как хотелось бы (тут кстати можно устроить прямой коннект юзера к RabbitMQ на HTML5/Flash, но это уже из разряда глупостей :-D)..
Есть плагин к RabbitMQ, который позволяет через JSON создавать очереди и подключать их к распределителям.
Цитата(Destruction @ 17.6.2012, 1:01) *
А неумение писать на эрланг тут каким боком?
К тому что на нем RabbitMQ написан. Кстати - клевый язык... 90К потоков на одной машине держит легко... Но это функциональный язык. Тут есть проблемы... Допустим в том, что к переменной можно присвоить значение только один раз.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 18.6.2012, 0:44
Сообщение #6


**********

Группа: Администраторы
Наличность: 0
Пользователь №: 1.833



Цитата(Warstone @ 17.6.2012, 14:30) *

К тому что на нем RabbitMQ написан. Кстати - клевый язык... 90К потоков на одной машине держит легко... Но это функциональный язык. Тут есть проблемы... Допустим в том, что к переменной можно присвоить значение только один раз.

А разницы на чем написан продукт с которым ты просто работаешь ?..

Тебе ведь не обязательно знать как работает Windows (на уровне когда можешь написать свою ОС с нуля), чтобы под него программировать? ;-) Во всяком случае мне не обязательно - в студии сто кнопок тыкнул - программа готова.. ))

Кролик дает своё апи - вызывай его и не думай как оно работает. Разве нет?

К слову про апи, он реализует протокол AMQP, документацию читать пробовал - но там вода-водой (не ту документацию читал?) - как в byte-sequence (или через JSON-плагин, но это не энтерпрайз конечно, тут было бы круто SOAP, хотя конечно интереснее толковая дока по AMQP...) выглядит подписка на RPC ? - Как насчет подписки двух воркеров на один RPC-поток (например в режиме когда оба воркера обработают вызов (e.g. передать тыще юзеров один месседж), и когда только один из них (а кролик отработает балансировщиком нагрузки, т.е. горизонтальное масштабирование воркеров)).

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


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
Stark   Чат, Интегрированный С Сайтом.   16.9.2011, 17:11
Soteric   Спасибо за сервис. Может быть имеет смысл вынести ...   16.9.2011, 19:25
Stark   Сделаю обязательно, спасибо за совет :) Буду благ...   16.9.2011, 19:30
Juzzver   Может можно вовсе обустроить мониторинг действий и...   16.9.2011, 20:27
Warstone   Может можно вовсе обустроить мониторинг действий ...   16.9.2011, 21:02
StaticZ   :goodpost: В кои-то веки в данном разделе появило...   17.9.2011, 1:19
Destruction   С появлением Unity это стало возможно... Надо тол...   15.6.2012, 21:06
Stark   Это сделать можно, без проблем :) Начать можно с ...   17.9.2011, 10:54
Джелу   А почему бы лучше не реализовать связку RunUO + ба...   15.6.2012, 18:25
Warstone   Лучше через файл с локом его.   15.6.2012, 19:08
Warstone   А разницы на чем написан продукт с которым ты прос...   18.6.2012, 2:05
Destruction   Кролик реализует не весь AMPQ, и AMPQ - это вообщ...   18.6.2012, 7:12
Warstone   Вот этого совсем не знал. Кажется я догадываюсь г...   18.6.2012, 8:25
Warstone   Только это не будет пиаром своего сервиса )) Так к...   16.6.2012, 20:43


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.9.2024, 9:00
Designed by Nickostyle