Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

stand-alone aplikacja wcf pod linux'a


Kyosha

Rekomendowane odpowiedzi

Opublikowano

Siemka.

Mam troszkę nietypowe pytanie... :(

Chciałbym postawić serwer gry na pingwinku (debian 8), lecz pliki napisane są w c# i zawierają wcf (iis dla ścisłości). Linux nie wspiera WCF'ka przez co połączenie pomiędzy OpenNos.login -> OpenNos.world jest niemożliwe. Dowiedziałem się, że aby uruchomić wcf na Debian'ie należy stworzyć osobną aplikacje (console), która będzie zawierać w sobie to co teoretycznie było zawarte w plikach gry (czyli elementy WCF).

 

Problem jest taki, że nie mam pojęcia jak to zrobić.

Ja na programowaniu się nie znam, zaś kolega który "tworzy" ze mną serwer zna się jedynie na C++ (wbrew pozorom języki te aż tak mega podobne nie są).

 

Okej, przejdźmy do rzeczy :

 

Dwa pliki, które zawierają wcf (których kompilacja w MONO jest niemożliwa) :

using System.ServiceModel;

namespace OpenNos.WCF.Interface
{
    public interface ICommunicationCallback
    {
        #region Methods

        [OperationContract(IsOneWay = true)]
        void ConnectAccountCallback(string accountName, int sessionId);

        [OperationContract(IsOneWay = true)]
        void ConnectCharacterCallback(string characterName);

        [OperationContract(IsOneWay = true)]
        void DisconnectAccountCallback(string accountName);

        [OperationContract(IsOneWay = true)]
        void DisconnectCharacterCallback(string characterName);

        #endregion
    }
}
using System.ServiceModel;

namespace OpenNos.WCF.Interface
{
    [ServiceContract(CallbackContract = typeof(ICommunicationCallback))]
    public interface ICommunicationService
    {
        #region Methods

        [OperationContract]
        bool AccountIsConnected(string accountName);

        [OperationContract(IsOneWay = true)]
        void Cleanup();

        [OperationContract]
        bool ConnectAccount(string accountName, int sessionId);

        [OperationContract]
        bool ConnectCharacter(string characterName, string accountName);

        [OperationContract(IsOneWay = true)]
        void DisconnectAccount(string accountName);

        [OperationContract(IsOneWay = true)]
        void DisconnectCharacter(string characterName);

        [OperationContract]
        bool HasRegisteredAccountLogin(string name, long sessionId);

        [OperationContract(IsOneWay = true)]
        void RegisterAccountLogin(string name, long sessionId);

        #endregion
    }
}

Wszystkie pliki gry znajdziecie tutaj :

https://github.com/OpenNos/OpenNos

Na internetach znalazłem przykładową aplikację, która zawiera ten wcf. Nie mam pojęcia co pozmieniać, aby zadziałała ona w odpowiedni sposób (czyli aby wcf z tych plików działał na linuksie). Znajdziecie ją tutaj :

https://github.com/shturm/mono-wcf-example

Z góry dziękuję za wskazówki.

Jeśli zaś ktoś jest w stanie zrobić "szkic" (czyli no niemalże gotowy kod) bądź też udzielić mega dokładnych wskazówek oferuję od 50 - 100 like (w zależności od % gotowości kodu)

 

Pozdrawiam, Kyosha

r9n9FM7.jpg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...