два сервера на photon

Re: два сервера на photon

Сообщение kelod 20 фев 2013, 19:27

типичный флуд пошёл....
вопрос был чётко поставлен, как соединить два сервера между собой, желательно по UDP, а сколько это стоит не кто не спрашивал, если не можете помочь не нужно бессмысленной писаниной загрязнять тему
kelod
UNIт
 
Сообщения: 139
Зарегистрирован: 26 ноя 2012, 16:45

Re: два сервера на photon

Сообщение maksimov 20 фев 2013, 23:09

kelod писал(а):типичный флуд пошёл....
вопрос был чётко поставлен, как соединить два сервера между собой, желательно по UDP, а сколько это стоит не кто не спрашивал, если не можете помочь не нужно бессмысленной писаниной загрязнять тему


Намек: четкость постановки вопроса, виднее тем, кто знает на него ответ.
О стоимости(как аргументе, "объясняющем" осмысленность ваших вопросов) заговорили вы.
Предложенную вами "тему", ввиду её безграмотности, попросту невозможно ничем "загрязнить". =) А обзывать "бессмысленной писаниной" бескорыстную помощь посторонних людей - не очень вежливо.

Далее... "два сервера соединяются между собой по UDP" следующим образом:
Синтаксис:
Используется csharp
// Отправка сообщения
void SendMessage()
{
   UdpClient udp = new UdpClient();

   // Указываем адрес отправки сообщения
   IPAddress ipaddress = IPAddress.Parse(textBoxAddress.Text);
   IPEndPoint ipendpoint = new IPEndPoint(ipaddress, 15000);

   // Формирование оправляемого сообщения и его отправка.
   // Сеть "понимает" только поток байтов и ей безраличны
   // объекты классов, строки и т.п. Поэтому преобразуем текстовое
   /// сообщение в поток байтов.
   byte[] message = Encoding.Default.GetBytes(textBoxSend.Text);
   int sended = udp.Send(message, message.Length, ipendpoint);

   // Если количество переданных байтов и предназначенных для
   // отправки совпадают, то 99,9% вероятности, что они доберутся
   // до адресата.
   if(sended == message.Length)
   {
      // все в порядке
      textBoxSend.Text = "";
   }
     
   // После окончания попытки отправки закрываем UDP соединение,
   // и освобождаем занятые объектом UdpClient ресурсы.
   udp.Close();
}

// Запуск отдельного потока для приема сообщений
void StartReceive()
{
   rec = new Thread(new ThreadStart(Receive));
   rec.Start();
}

// Функция извлекающая пришедшие сообщения
// работающая в отдельном потоке.
void Receive()
{
   // При принудительном завершении работы метода
   // класса UdpClient Receive() и непредвиденных ситуациях
   // возможны исключения в этом месте исходного кода,
   // заключим его в блок try чтобы не появлялись окна ошибок.
   try
   {
      // Перед созданием нового объекта закрываем старый
      // для освобождения занятых ресурсов.
      if (udp != null) udp.Close();

      udp = new UdpClient(15000);
                 
      while (true)
      {

         IPEndPoint ipendpoint = null;
         byte[] message = udp.Receive(ref ipendpoint);
         textBox2.Text = Encoding.Default.GetString(message);

         // Если дана команда остановить поток, останавливаем бесконечный цикл.
         if (stopReceive == true) break;
      }  
                     
      udp.Close();
      }
      catch
     {
     }
}


// Функция безопасной остановки дополнительного потока
void StopReceive()
{
   // Останавливаем цикл в дополнительном потоке
   stopReceive = true;

   // Принудительно закрываем объект класса UdpClient
   if(udp != null) udp.Close();

   // Для корректного завершения дополнительного потока
   // подключаем его к основному потоку.
   if(rec != null) rec.Join();
}


Ещё вопросы?
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: два сервера на photon

Сообщение kelod 20 фев 2013, 23:22

maksimov писал(а):
kelod писал(а):Далее... "два сервера соединяются между собой по UDP" следующим образом:


но это же не в фотоне, вернее не его средствами, а мне нужно именно с помощью photon, я тут выяснил что нужно использовать вот это ApplicationBase::ConnectToServerTcp(Udp) но я не понимаю как, я понимаю как к серверу подключить кучу клиентов, но не знаю как другой сервер
kelod
UNIт
 
Сообщения: 139
Зарегистрирован: 26 ноя 2012, 16:45

Re: два сервера на photon

Сообщение maksimov 21 фев 2013, 13:10

kelod писал(а):но это же не в фотоне,


Добавите этот код к своему расширению ФотонСервера - будет "в фотоне". У вас, "в фотоне".


kelod писал(а):вернее не его средствами,


"Его средства" вы отвергли ещё ранее. Вы написали, что не хотите "заворачиваться с ... распределенной нагрузкой и прочей фигнёй". Что у вас есть свое видение архитектуры распределения нагрузки по серверам.


kelod писал(а):а мне нужно именно с помощью photon,


Напишите письмо на этот электронный адрес: business@exitgames.com. В нем вежливо объясните, что хотели бы связать воедино несколько пакетов ФотонСервера, для того что бы вместо одной нормальной лицензии, использовать несколько бесплатных. Уверен, в следующей версии Photon Server они обязательно добавят для вас данный функционал, и вы сможете реализовать свою замечательную идею "именно с помощью photon".


kelod писал(а):я тут выяснил что нужно использовать вот это ApplicationBase::ConnectToServerTcp(Udp) но я не понимаю как, я понимаю как к серверу подключить кучу клиентов, но не знаю как другой сервер


Насколько я понимаю, это взаимодействие между серверами в рамках одного ФотонСервера(одна лицензия на обоих серверах).
Пример реализации распределения игрового сервера по нескольким физсерверам - приложение LoadBalancing(http://doc.exitgames.com/photon-server/LoadBalancing/).
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: два сервера на photon

Сообщение kelod 21 фев 2013, 21:25

maksimov писал(а):
kelod писал(а):но это же не в фотоне,


Добавите этот код к своему расширению ФотонСервера - будет "в фотоне". У вас, "в фотоне".



в фотоне то будет, но фотон для того и используют что бы не изобретать велосипед, а вы мне предлагаете прикручивать очередное колесо
kelod
UNIт
 
Сообщения: 139
Зарегистрирован: 26 ноя 2012, 16:45

Re: два сервера на photon

Сообщение gnoblin 22 фев 2013, 04:30

два фотон-сервера можно общать друг с другом через специальное встроенное апи по tcp

но это не главное - потому что архитектура фотона уже заранее подразумевает разделение инстансов сервера на master server и несколько game servers (так работает photon cloud, так можно организовать работу и в своем приложении - насколько я понимаю через lite lobby).

в целом предлагаю автору использовать просто photon cloud )
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: два сервера на photon

Сообщение kelod 22 фев 2013, 18:07

gnoblin писал(а):два фотон-сервера можно общать друг с другом через специальное встроенное апи по tcp

но это не главное - потому что архитектура фотона уже заранее подразумевает разделение инстансов сервера на master server и несколько game servers (так работает photon cloud, так можно организовать работу и в своем приложении - насколько я понимаю через lite lobby).

в целом предлагаю автору использовать просто photon cloud )

я использую photon server? он болле гибкий и больше возможностей, с сервером я кажется разобрался, не понятно как организовать клиентское соединение на сервере, т.е. что бы сервер выступал в качестве клиента
kelod
UNIт
 
Сообщения: 139
Зарегистрирован: 26 ноя 2012, 16:45

Re: два сервера на photon

Сообщение seaman 22 фев 2013, 18:34

Вы это все видели?
ЮТУБ
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: два сервера на photon

Сообщение maksimov 22 фев 2013, 18:54

kelod писал(а):в фотоне то будет, но фотон для того и используют что бы не изобретать велосипед, а вы мне предлагаете прикручивать очередное колесо


Изобретать велосипеды - это была ваша идея. Это вы захотели строить свою архитектуру, взамен тем, которые предлагает ExitGame.
Это уже не говоря о том, что изобретаемый вами велосипед - с квадратными колесами. О чем вам уже попытались несколько раз намекнуть ваши собеседники.


kelod писал(а):а вы мне предлагаете прикручивать очередное колесо


Я ничего вам не предлагал. Я ответил на ваш вопрос(вы спросили, как связывать два компьютера по UDP - я вам показал).


kelod писал(а):что бы сервер выступал в качестве клиента


Занавес.
Еще раз(сосредоточьтесь!): реализация распределения ФотонСерверного приложения по нескольким физическим серверам, описана тут: http://doc.exitgames.com/photon-server/LoadBalancing/. Вы её смотрели? Что в ней вам осталось непонятным?

cibersant, ещё неделю назад вам написал: "клиент это клиент, а сервер это сервер".
Мне остается только повторить вам его слова.(может хоть на этот раз вы нам поверите)
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: два сервера на photon

Сообщение maksimov 22 фев 2013, 19:02

gnoblin писал(а):потому что архитектура фотона уже заранее подразумевает разделение инстансов сервера на master server и несколько game servers (так работает photon cloud, так можно организовать работу и в своем приложении - насколько я понимаю через lite lobby).


Не совсем. Распределение по серверам у них вынесено в приложение, и примером такой реализации является Loadbalancing(покомнатность в котором, в свою очередь, реализована на основе Lite). На PhotonCloud у них, как я понял, запущен конгломерат всех четырех приложений, поставляемых в качестве примеров, в Server SDK.
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: два сервера на photon

Сообщение kelod 22 фев 2013, 22:48

seaman писал(а):Вы это все видели?
ЮТУБ

да я это смотрел, но там на английском, я разговорный не так хорошо понимаю
kelod
UNIт
 
Сообщения: 139
Зарегистрирован: 26 ноя 2012, 16:45

Re: два сервера на photon

Сообщение kelod 22 фев 2013, 22:51

maksimov писал(а):
kelod писал(а):что бы сервер выступал в качестве клиента


Занавес.
Еще раз(сосредоточьтесь!): реализация распределения ФотонСерверного приложения по нескольким физическим серверам, описана тут: http://doc.exitgames.com/photon-server/LoadBalancing/. Вы её смотрели? Что в ней вам осталось непонятным?

cibersant, ещё неделю назад вам написал: "клиент это клиент, а сервер это сервер".
Мне остается только повторить вам его слова.(может хоть на этот раз вы нам поверите)

а вы то сами внимательно читали документацию , что мне подсовываете?? там чётко написано что есть мастер сервер и к нему подключаются игровые сервера , в итоге получается что игровые сервера становятся клиентами для мастер серверу
мне не понятно как там осуществляется подклюxение GameServer к Master Server
kelod
UNIт
 
Сообщения: 139
Зарегистрирован: 26 ноя 2012, 16:45

Re: два сервера на photon

Сообщение seaman 22 фев 2013, 23:31

мне не понятно как там осуществляется подклюxение GameServer к Master Server

1. The Game Servers call the RegisterGameServer operation once after they are connected to the Master Server.
2. Afterwards, the Game Server publishes all existing game states to the master server:
This is done by sending a message to each Game that tells it to send it’s game state to the master
The Game handles this in the ProcessMessage method and calls the UpdateGameStateOnMaster method to send an UpdateGameEvent to the master
The game state is also updated on the master whenever a game is created, joined or left by a client or its properties are changed.
Примеры кода присутствуют.
ЗЫ: GameЫerver - не клиент для MasterServer
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: два сервера на photon

Сообщение NTrix 08 авг 2014, 09:18

Вообще, по поводу соединение Server-To-Server все очень хорошо описано на сайте exitgames.com.

Я делал также, никаких проблем, все идеально работает.

http://doc.exitgames.com/en/onpremise/c ... troduction
NTrix
UNец
 
Сообщения: 2
Зарегистрирован: 08 авг 2014, 09:14

Пред.

Вернуться в Photon

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2