1. Bu site çerez kullanmaktadır. Siteyi kullanmaya devam etmeniz halinde çerez kullanımı ile ilgili site koşullarını kabul etmiş sayılırsınız. Daha Fazlasını Öğren.

PHPCommunicator - Java Socket

Konusu 'Kullanıcı Eklenti Tanıtımları' forumundadır ve Elfen tarafından 14 Eylül 2017 başlatılmıştır.

  1. Elfen Müfredatta yazıyor oğlum

    Katılım:
    27 Temmuz 2016
    Mesajlar:
    438
    Steam:
    miraio3
    Reklam
    PHPCommunicator'ı kısaca özetleyecek olursak sunucunuza İnternet üzerinden komut yollayabilir hatta sunucunuzdan bilgi alabilirsiniz. Her türlü öneriye açığım.
    • /phpd komutu debug mesajlarının konsola gönderilmesini açar veya kapatır.
    • konfik.yml dosyasında bir hata olursa dosya kendini sıfırlar ve yeni bir default config oluşturur.
    • Default configdeki şifre 10 karakterlidir ve rastgele harflerden oluşur (config sıfırlandığında şifre de değişir)
    • Dışarıdan gelen bağlantılar config üzerinden açılıp kapatılabilir.
    • konfik.yml üzerinden IP adresi eklenebiliyor.
    • Eğer eklenirse bu IP adresleri dışından bağlantı sağlanamıyor.
    • PHP tarafından gönderilen mesajın formatı şudur;
    • şifre\nCallable:CallableTürü:Argümanlar
    • Şifre configde belirtilen şifredir.
    • Callable REQUEST veya ACTION olabilir. REQUEST istek, ACTION eylem dir.
    • Callable türü REQUEST olarak şu anda sadece ONLINE_COUNT dır.
    • ACTION türleri KICK_PLAYER ve CONSOLE_COMMAND dır.
    • Argümanlar arasında iki nokta bulunur.
    • ONLINE_COUNT'ın argümanı bulunmaz.
    • KICK_PLAYER da birinci argüman oyuncu adı ikinci argüman kick sebebidir.
    • CONSOLE_COMMAND'da tek argüman konsol tarafından gerçekleştirilecek komuttur. Örnek;
    • testpassword\nACTION:KICK_PLAYER:Elfen:TestMesajı
    • Eklenti içerisindeki konfik.yml dosyasına dokunulmamalıdır.
    PHP Tarafında CONSOLE_COMMAND kullanımı;
    PHP:
    $PORT 20222;
    $HOST "localhost";

    $sock socket_create(AF_INETSOCK_STREAM0)
            or die(
    "error: could not create socket\n");

    $succ socket_connect($sock$HOST$PORT)
            or die(
    "error: could not connect to host\n");
    $text "CZGNwVCBWt\nACTION:CONSOLE_COMMAND:broadcast deneme";

    socket_write($sock$text "\n"strlen($text) + 1)
            or die(
    "error: failed to write to socket\n");


    PHPCommunicator-1.2.0
    İndir
    VirusTotal

    PHPCommunicator-1.3.0
    İndir
    VirusTotal
     
    Son düzenleme: 17 Eylül 2017
    afesraca, Bkunkcu, BadActive ve diğer 4 kişi bunu beğendi.
  2. Whoisthatinblack Taş Madencisi

    Katılım:
    17 Mayıs 2017
    Mesajlar:
    65
    PSN:
    GONE
    Xbox:
    GONE
    Steam:
    GONE
    Minecraft:
    GONE
    Kimse iplememiş güzelim eklentiyi :/ SSL ve Json vb. ile daha iyi bir format dışında eksik göremiyorum.
     
    DocBaşak bunu beğendi.
  3. ilkeroyun Kızıltaş Madencisi

    Katılım:
    6 Eylül 2013
    Mesajlar:
    419
    PSN:
    SapikErman
    Xbox:
    TheLegendboy12
    Steam:
    Pickleilker
    Minecraft:
    ilkerbey
    Kesinlikle kaliteli bir plugin pek kullanma fırsatım olmamasına rağmen oldukça değerli
     
  4. Bkunkcu Windows 10 CDsi bulunur. Emekli

    Katılım:
    6 Ağustos 2012
    Mesajlar:
    1.220
    Hocam öncelikle eline sağlık, güzel çalışma olmuş. Config dosyası ile rastgele şifre oluşturma fikri ve dışarıdan gelen bağlantıların kontrol edilebilmesi gayet güzel fakat uzak bir web sunucudan bağlantı kurmak gerektiğinde, socketler üzerinden veri yollarken herhangi bir şifreleme yapılmayacağı için bu bağlantının arasına girerek şifreyi ele geçirmek pek de zor değil. Tam güvenlik için SSL kullanılabilir tabii ama kullancılar için külfetli olacağından SSL de pek mantıklı gözükmüyor. Kesin çözüm olmasa da güvenliği kayda değer oranda arttırmak için sadece belli ip adreslerinden bağlantıya izin vererek yapılacak erişimin kendi uzak web sunucundan olacağını garantileyebilirsin(tabii ki hiçbir zaman garanti değil). Tekrar eline sağlık, kolay gelsin.
     
    Son düzenleme: 17 Eylül 2017
    Elfen ve Whoisthatinblack bunu beğendi.
  5. Elfen Müfredatta yazıyor oğlum

    Katılım:
    27 Temmuz 2016
    Mesajlar:
    438
    Steam:
    miraio3
    PHPCommunicator-1.3.0 Güncellemeleri
    • konfik.yml üzerinden IP adresi eklenebiliyor.
    • Eğer eklenirse bu IP adresleri dışından bağlantı sağlanamıyor.
     
  6. Schaffer79 Limonlu kek mi, ıyk!

    Katılım:
    22 Ağustos 2015
    Mesajlar:
    16
    Steam:
    7kedi7beni
    Minecraft:
    hikabu
    Şu anki haliyle gerçekten anlamsız bir proje olmuş zira böyle bir işlem için Socket açmak hem aldığınız performansı düşürecek, hem de yapmanız gereken işi olduğundan komplike hale getirecektir. Amacınız eğer ki konsola komut göndermekse bunu Bukkit dahi kullanmadan doğrudan Vanilla bir sunucu ile dahi "RCON" (server.properties dosyasından aktif edebilirsiniz) özelliğiyle yapabilirsiniz. Projenin tek amacı konsola komut göndermek veya sunucudan bilgi almaksa size önerim daha ihtiyaç duyulabilir şeyler yapmanız olacaktır çünkü söylediğim gibi bu özellik oyuna zaten direkt güvenli ve hızlı bir metod ile geliyor. Örnekler için ektekilere bakabilirsiniz.

    https://github.com/ekaomk/Minecraft-RCON-Console
    https://github.com/thedudeguy/PHP-Minecraft-Rcon
    https://github.com/Rauks/Minecraft-RCON
    https://github.com/xPaw/PHP-Minecraft-Query
     
  7. Elfen Müfredatta yazıyor oğlum

    Katılım:
    27 Temmuz 2016
    Mesajlar:
    438
    Steam:
    miraio3
    Aslında eklentinin yazılma amacı RCON'a alternatif çıkarmak çünkü nedenini bulamadığımız bir problemden ötürü sunucumuzda RCON çalışmıyor. @Whoisthatinblack 'in isteği üzerine paylaştım.
     
    Schaffer79 bunu beğendi.
  8. Whoisthatinblack Taş Madencisi

    Katılım:
    17 Mayıs 2017
    Mesajlar:
    65
    PSN:
    GONE
    Xbox:
    GONE
    Steam:
    GONE
    Minecraft:
    GONE
    Maalesef RCON veya Query kullanarak yapılamayacak şeyler var. Mesela bir oyuncunun üzerinde belirli bir işlem gerçekleştirip, sonuca bağlı olarak geri bildirim almak gibi. Örnek vermek gerekirse: Oyuncu site üzerinden tl ile rank satın alır, PHP ile oyuncunun rank satın aldığı sunucuya iletilir, sunucu oyuncuya rankını başarıyla verebilirse oyuncunun an itibariyle üyesi olduğu rankleri ve bunların sürelerini PHP ye iletir. Ayrııca online sayısına bakarken vanishtekileri hesaba katmak, Vault ile oyuncunun bakiyesini sorgulamak veya oyuncunun oyun içi bildirimlerini web de görebilmesini sağlamak gibi sürüyle mantıklı ve işe yarar kullanımı sıralanabilir.

    Performans açısından sorun olacağını sanmıyorum çünkü yalnızca bir adet socket var ve gelen bağlantılar sırayla kabul ediliyor. Hem zaten RCON'da socket kullanmıyor mu?
     
    Schaffer79 ve Elfen bunu beğendi.
  9. Schaffer79 Limonlu kek mi, ıyk!

    Katılım:
    22 Ağustos 2015
    Mesajlar:
    16
    Steam:
    7kedi7beni
    Minecraft:
    hikabu
    Fark ettiyseniz zaten ilk yorumumda "Amacınız eğer ki konsola komut göndermekse" diye başlamışım, RCON ile nelerin yapılıp nelerin yapılamayacağını zaten bildiğimi anlatmaya çalışarak ve konuda da yapılan tek şeyin bu olduğunu belirterek. Gözümden kaçan bir şey varsa belirtin lütfen.

    Zaten yapılmışı daha doğrusu yapılmışı ve en az yüz defa denenmiş ve bu konudaki bütün ihtiyacınızı karşılayacak bir sistemi elinizin tersiyle itip bir kenara koymak için sizin alternatifinizin daha iyi olması gerekir ki bu kütüphaneyi kullanacak kişiler için ne bir doküman, ne de bir kaynak kodu mevcut. Şahsımı geçtim bu projeyi üstlenen arkadaş bile muhtemelen ciddi bir eklenti kodlarken bir protokole ihtiyaç duyduğunda rastgele bir tanesini kullanmaktan ziyade gerçekten kalite testinden geçtiğine inandığı bir yazılımı tercih edecektir. Kendinize, "Bunun RCON'a veya başka bir protokole göre ne avantajı var?" diye sorduğunuzda bir şey bulamıyor fakat bilakis dezavantajlarını sorduğunuzda birkaç şey aklınıza geliyorsa projeniz başarılı bir alternatif değil demektir. Belki de yapılmamış şeyler deneyerek orijinalliğiniz ile bir şeyler çıkartmanız gerekiyordur.
     
    SpringHat ve Admicos bunu beğendi.
  10. Whoisthatinblack Taş Madencisi

    Katılım:
    17 Mayıs 2017
    Mesajlar:
    65
    PSN:
    GONE
    Xbox:
    GONE
    Steam:
    GONE
    Minecraft:
    GONE
    İlk yorumunda bahsettiğin kısmı zaten okudum ve anladım fakat kullanım amacını daha detaylı bir biçimde belirtme gereksinimi duydum çünkü bu eklentinin yaptığı olayı RCON ile yapamıyoruz ve bundan dolayı RCON'ı senin tabirinle elimizin tersiyle itmek zorundayız.

    Ayrıca bu bir eklentidir, kütüphane değildir ve bir API'a sahip değil; fakat bunu kullanacak birisi bizden rica etse bir API eklememiz hiç de zor değil. Eklentide şu anda sadece 3 adet metod var çünkü kimse ilgi gösterip "şunu ekleyebilir misiniz?" şeklinde öneride bulunmadı. Bundan ötürü bizde zahmet gösterip eklentiye yeni birşeyler eklemedik, eklentinin zaten kullanıcısı yok bu sebepten kendimizin kullanmayacağı özellikleri eklememiz sadece vakit kaybı olur. Kendimiz ihtiyaç duyduğumuzda eklentiye yeni birşeyler eklersek muhtemelen burada paylaşırız.

    Bu eklentinin burada paylaşılma sebebi "belki topluluktan ilgi görür ve gelen önerilere bağlı olarak gelişir" şeklinde düşünmemdi. Fakat düşündüğüm gibi olmadı, RCON ve Query ile yapılabilenlerin ötesine geçemedi. (Kendi sunucumuzda kullandığımız sürümünde ek callablelar bulunuyor örneğin yukarıda anlattığım bildirim sistemi buna dahil)
     
    Son düzenleme: 2 Ekim 2017
  11. SpringHat Ağaç Yumruklayıcı

    Katılım:
    24 Ekim 2016
    Mesajlar:
    17
    Kütüphaneden kasıt protokol veya yöntem demek istemiş @Schaffer79 galiba veya kütüphane teknik detaylarında çok uzman değilim bilmiyorum. Ama gerçekten rcon olayı vanillada bile varmışki biraz gereksiz olmuş bunun için eklenti yapman, bukkitin plugin sistemine yeni plugin sistemi eklemek kadar saçma (Skript de bunların örneklerinden) bir işe girmeni mantıklı bulmadım. Önceden o rcon şeyini denediğine emin misin çünkü ilk defa duymama rağmen tek denemede kendi local sunucum üzerinde çalıştırabildim. Yardım edebilirim gerekirse.
     
  12. Whoisthatinblack Taş Madencisi

    Katılım:
    17 Mayıs 2017
    Mesajlar:
    65
    PSN:
    GONE
    Xbox:
    GONE
    Steam:
    GONE
    Minecraft:
    GONE
    Sen çok yanlış gelmişsin beyim. Lütfen yazılanları tekrar oku.
     
    Walden bunu beğendi.
  13. Elfen Müfredatta yazıyor oğlum

    Katılım:
    27 Temmuz 2016
    Mesajlar:
    438
    Steam:
    miraio3
    Eklenti güncel.
     
    Breakthrough bunu beğendi.

Sayfayı Paylaş