Обмен данными между C # Server (не веб-сервером) и PHP - PullRequest
4 голосов
/ 04 февраля 2010

У меня постоянно запущена серверная программа (C # /. NET 2.0 в Linux с моно), и я хочу подключиться к ней из скрипта PHP для отображения информации о состоянии на веб-сайте.

Цель состоит в том, чтобы создать (своего рода) браузерную игру в реальном времени (без Flash, без Silverlight), и я хочу использовать скрипт PHP для получения необходимой информации от C # GameServer, то есть текущих позиций юнитов, ресурсов игрока, счета , видимая карта и т. д. Информация обновляется каждую секунду или даже быстрее, но действия могут занять часы или даже дни (т. е. исследование может занять неделю)

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

Мои мысли:

  • Используйте встроенный WebServer и подключайтесь через PHPs SoapClient.
    У кого-нибудь есть опыт работы с бесплатным встроенным WebServer (бесплатно, потому что Игра будет бесплатной)?

  • Программирование на сокете и передача фрагментов JSON / XML / SOAP.
    Существуют ли какие-либо простые библиотеки для этого типа сетевого взаимодействия для PHP / C #, которые автоматически считывают данные из сокета до тех пор, пока сообщение не будет сделано, а затем, например, отправят событие на игровой контроллер?

  • Просто скопируйте данные пользователя и глобальные данные в базу данных или в XML-файлы
    Самое простое решение, но imho недостаточно масштабируемое.

Что бы вы предложили?

Заранее спасибо.

Дополнение для других, имеющих аналогичный вопрос:

После небольшого исследования после публикации этого Вопроса я наткнулся на .NET System.Net.HttpListener, который даже поддерживается моно, так что я буду используйте это сейчас. Кажется, есть все необходимое для встраивания WebServer на ваш работающий сервер.


Ответы [ 2 ]

1 голос
/ 04 февраля 2010

Я бы использовал простой встроенный веб-сервер и просто использовал расширения PHP Curl для взаимодействия с ним http://php.net/manual/en/book.curl.php. Для встроенного веб-сервера я бы начал смотреть на codeplex, например. http://www.codeplex.com/webserver.

1 голос
/ 04 февраля 2010

Просто запустите простой сервер на сервере C # и подключитесь к нему с вашего клиента (PHP) через сокет. Вам нужно будет написать «правила» для взаимодействия, но вы можете избежать накладных расходов, связанных с JSON / SOAP и т. Д. Другое решение - использовать сервер XMLRPC.

...