Metin2 P2P Bağlantısını Kullanarak Web Sitesine Oyundan Anlık Veri Gönderip Almak

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 44

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar,
P2P dediğimiz zaman bir çoğumuz korkabilir. Bu zıkkım yüzünden başınıza gelmeyen kalmamıştır lakin ne işe yaradığını öğrendiğinizde kesinlikle çok seveceksiniz. <3

Öncelikle Nedur Bu P2P?
Peer-to-peer
ya da P2P olarak tanımlanır. Peer eş, denk demektir. İki veya daha fazla istemci arasında veri paylaşmak için kullanılan bir ağ protokolüdür.

Eşler, sunucuları veya sabit bilgisayarlar tarafından merkezi koordinasyon ihtiyacı olmadan, işlemci gücü, disk depolama veya ağ bant genişliği gibi kendi kaynaklarının bir kısmını, doğrudan diğer ağ katılımcıları için kullanılabilir yapabilir. Sadece sunucuların tedarikçi ve istemcilerin tüketici olduğu geleneksel istemci-sunucu modelinin aksine, eşler, hem tedarikçi hem de tüketicidir.

Metin2 Neden P2P'ye İhtiyaç Duyar?
Kanallar arası iletişimi sağlamak, anlık veri alıp göndermek için kullanılır.

Web Sitemiz İle Oyuna P2P İle Bağlanmak Mümkün Mü?
Evet mümkün fakat güvenlik önlemlerini çok iyi şekilde almanız gerekmektedir. P2P kodları ile serverinizi bir yönetici gibi yönetebilir..

Web Sitesinde P2P Bağlantısını Kullanarak Verileri Almak Mı Yoksa Veritabanı Kullanarak Almak Mı Karlı?
Bu çok az bilinen bir konudur fakat bu zamana kadar edindiğin tecrübelerde. Oyundaki her işlem anlık olarak veritabanına kayıt edilmez. Genelde fileslerde her 30dk'da bir oyun veritabanına yazılır. Bu süreyi düşürebilirsiniz.
Reboot atarken item kaybıda bu yüzden yaşanmaktadır.

Online sayacından örnek vermek gerekirse. Her bir karakteri alıp onun en son girdiği saate bakıp hepsini saydırmanız gereken bir sql cümlesi yazmanız gereklidir. Buda tabikide belli bir işlem gücü demektir. Bu veriler ise oyun ile eş bir şekilde çalışmaz. Oyunda veritabanı yedeğini ne kadar süre belirlediyseniz 30dk ise 30dk önce olanları gösterir..

Kısacası P2P kullanarak anlık olarak oyunda etkileşimde bulunabilir, veriler alabilirsiniz ve daha az kaynak tüketirsiniz.

Web Sitemizde P2P Yardımı İle Hangi İşlemleri Yaparız?
  • <li data-xf-list-type="ul">Anlık online sayacı yapabilirsiniz. Her bayrak için ayrı ayrı'da alabilirsiniz. <li data-xf-list-type="ul">Oyuncuları dc atabilirsiniz. <li data-xf-list-type="ul">GM kodlarını kullanabilirsiniz. (Panelden birisine gold gönderecekseniz p2p ile anlık gönderebilirsiniz. Veritabanı ile bu mümkün değildir! Karakterin 30dk oyunda olmaması gerekli.) <li data-xf-list-type="ul">Anlık olarak item gönderebilirsiniz. <li data-xf-list-type="ul">Ban, chat banı atabilrisiniz. <li data-xf-list-type="ul">Serveri bakım moduna alabilirsiniz. <li data-xf-list-type="ul">Eventleri açıp kapatabilirsiniz. (Panel üzerinden otomatik event başlatıcı ve bitirici sistem yapabilirsiniz.) <li data-xf-list-type="ul">Panel üzerinden oyuna notlar gönderebilirsiniz.
Gördüğünüz gibi yapılacak çok şey var.
xclear.png.pagespeed.ic.zaZh-vXmDi.webp


Tabi ben size burada her özelliği tek tek nasıl yazacağınızı anlatmayacağım.
xclear.png.pagespeed.ic.zaZh-vXmDi.webp


P2P komutlarını öğrenmek için ilk önce serverinizin server kaynak kodunda;
game/src/input.cpp açıp;
Kod:
int CInputHandshake::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)

bu satırı bulmanız.
Bunun altında "USER_COUNT" gibi komutlar var.

Örnek PHP komutu;
Kod:
/** * Servere p2p ile bağlantı göndermek için kullanılır. * * @param $yazi * @param string $tip * @param int $port * @return array|string */ function P2PSendServer($yazi, $tip = "NOTICE", $port = 13000) {         // Metin2 serverin IP ve ADMINPAGE_PASSWORD     $serverIp = "192.168.1.105"; $sifre = "buraya p2p adminpage_password gelecek!";       // CREATE     $socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);       if ($socket &lt; 0)     {         echo "\n Gecersiz socket...\n";           exit;     }       $sonuc = socket_connect ($socket, $serverIp, $port);       if ($sonuc &lt; 0)         echo "\n Bağlantı hatası. Hata : ".socket_strerror($sonuc)."\n";       if($tip == "USER_COUNT")         $sorgu = "\x40".$tip."\x0A";     else     {         $sorgu2 = "\x40".$sifre."\x0A";         $sorguBoyut2 = strlen($sorgu2);         $sorguSonuc2 = socket_write($socket, $sorgu2, $sorguBoyut2);         socket_recv($socket, $sonuc2, 256, 0);         $sorgu = "\x40".$tip." ".$yazi."\x0A";     }       $sorguBoyut = strlen($sorgu);     $sorguSonuc = socket_write($socket, $sorgu, $sorguBoyut);       if ($sorguSonuc &lt; 0)         echo "Hata: ".socket_strerror($sorguSonuc)."\n";     else         $sonuc1 = socket_recv($socket, $sonuc2, 256, 0);         if ($tip == "USER_COUNT")     {        $say = trim($sonuc2);         $say = explode(' ', $say);         //$say[0] = Kanaldaki toplam online         //$say[1] = Kırmızı bayrak toplam online         //$say[2] = Sarı bayrak toplam online         //$say[3] = Mavi bayrak toplam online         //$say[4] = Çekirdek toplam online         return $say;     }     else     {         return "$sonuc2\n";     }         // P2P Baglantı kapat.     socket_close($socket); }     $say1 = P2PSendServer("", "USER_COUNT", 14000); //CH1     ?&gt;

Metin2 P2P Bağlantısını Kullanarak Web Sitesine Oyundan Anlık Veri Gönderip Almak

Metin2 özel sunucuları geliştiren geliştiriciler için anlık veri alışverişi büyük önem taşır. Bu işlem özellikle oyuncu istatistikleri, ranklisteler, özel etkinlik verileri veya sunucu içi satın alımlar gibi durumlarda kritik rol oynar. Bu makalede Metin2 P2P bağlantısı kullanarak web sitesine nasıl anlık veri gönderip alabileceğinizi detaylıca ele alacağız. Bu sayede Metin2Lobby gibi platformlar üzerinden sunucunuzla entegre çalışan sistemler kurabilirsiniz.

P2P Nedir?
P2P (Peer-to-Peer) bağlantısı, iki farklı sistem arasında doğrudan haberleşme yöntemidir. Metin2 özel sunucularda bu yapı genellikle oyun sunucusu ile harici bir sistem (örneğin web sunucusu) arasında veri aktarımı için kullanılır. P2P sayesinde oyuncuların karakter bilgileri, seviye durumları, envanter içerikleri gibi veriler web arayüzüne aktarılabilir. Aynı zamanda web üzerinden başlatılan komutlar da oyuna geri döndürülebilir.

Metin2 P2P Bağlantısı Kurulumu
P2P bağlantısı kurabilmek için öncelikle C++ tabanlı game server üzerinde gerekli socket işlemleri tanımlanmalıdır. Bu işlemler genellikle core dosyalarında packet tanımlamaları şeklinde yapılır. Socket üzerinden TCP/IP bağlantısı kurularak veri akışı sağlanır. Bu işlem sırasında auth sunucusu ile senkronizasyon sağlanması önemlidir.

Web Tarafında API Entegrasyonu
Web tarafında bir API sistemi oluşturulması gerekir. Bu sistem genellikle Python ya da PHP ile yazılır. Oyun sunucusu, belirli aralıklarla bu API'ye istek atarak veri gönderir veya veri alır. Örneğin, oyuncu bir quest tamamladığında, bu bilgi web'e gönderilir ve rank listesi güncellenir. Aynı şekilde web üzerinden başlatılan özel etkinlikler oyun sunucusuna aktarılır.

Güvenlik Önlemleri
Veri alışverişi sırasında güvenlik çok önemlidir. Token tabanlı kimlik doğrulama sistemleri kullanılmalı, gelen istekler kontrol edilmelidir. Ayrıca veri şifreleme (AES, RSA gibi) gibi tekniklerle veri güvenliği sağlanmalıdır. Aksi takdirde saldırganlar sahte isteklerle sunucuyu manipüle edebilir.

Örnek Senaryo: Rank Sistemi
Oyuncuların seviyeleri,击杀 sayısı ve eşyaları gibi veriler P2P bağlantısı ile web sitesine aktarılır. Web sitesi bu verileri işleyerek anlık olarak ranklist sayfasını günceller. Bu sayede oyuncular oyun dışında da gelişimlerini takip edebilir. Ayrıca özel ödüller veya event duyuruları da web üzerinden başlatılabilir ve oyunculara anında bildirim olarak gönderilebilir.

Sonuç
Metin2 P2P bağlantısı, özel sunucuların web ile daha güçlü entegrasyon kurmasını sağlar. Doğru yapılandırıldığında hem kullanıcı deneyimi artırılır hem de yönetim kolaylığı sunar. Metin2Lobby ile benzer projeler geliştirmek istiyorsanız, bu tarz sistemleri öğrenmek ve uygulamak çok faydalı olacaktır.


Sending and Receiving Live Data from Metin2 Game to Website via P2P Connection

For developers creating Metin2 private servers, real-time data exchange is crucial. This process is especially important for scenarios such as player statistics, rankings, in-game event data, or in-game purchases. In this article, we will thoroughly explain how to send and receive live data to your website using the Metin2 P2P connection. This way, you can build integrated systems working with your server on platforms like Metin2Lobby.

What is P2P?
P2P (Peer-to-Peer) connection is a direct communication method between two different systems. In Metin2 private servers, this structure is commonly used for data transfer between the game server and an external system (such as a web server). Thanks to P2P, data such as player character stats, level status, inventory contents, etc., can be transferred to a web interface. Additionally, commands initiated via the web can be sent back into the game.

Setting up Metin2 P2P Connection
To establish a P2P connection, first, necessary socket operations must be defined on the C++-based game server. These operations are typically done as packet definitions within the core files. A TCP/IP connection is established through sockets to enable data flow. During this process, synchronization with the auth server must be ensured.

API Integration on the Web Side
An API system must be built on the web side. This system is usually written in Python or PHP. The game server sends requests periodically to this API to send or retrieve data. For example, when a player completes a quest, that information is sent to the web and the leaderboard is updated. Similarly, special events initiated from the web can be transferred into the game server.

Security Measures
Security is highly critical during data exchange. Token-based authentication should be implemented, and incoming requests must be validated. Additionally, data encryption techniques (like AES, RSA) should be applied to secure data. Otherwise, attackers may manipulate the server with fake requests.

Example Scenario: Ranking System
Player levels, kill counts, items, etc., are transferred to the website via P2P connection. The website processes this data to update the ranklist page in real-time. This allows players to track their progress even outside the game. Moreover, special rewards or event announcements can be started from the web and instantly delivered to players as notifications.

Conclusion
Metin2 P2P connections allow private servers to integrate more strongly with web services. When configured correctly, both user experience and management ease are enhanced. If you want to develop projects similar to Metin2Lobby, learning and implementing such systems will be very beneficial.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt