• 08-05-2022, 20:55:29
    #1
    Merhabalar,
    Socket.io kullanarak eşleştirmeli basit bir uygulama deniyorum ancak bağlantı konusunda bir sorun yaşıyorum. Bu arada 3000 portunu kullanıyorum.
    Node.js ile gerekli tüm işlemleri yapıyorum, localhost'ta sorun yok ama kendi websitemi sisteme nasıl entegre edeceğimi anlamadım. Siteme ait ip adresini de (örneğin https://xx.xx.xx.x:3000 şeklnde) url olarak yazdığımda sorun yaşıyorum. Gerekli node.js ve html dosyaları lokalde olduğu gibi aynı klasör içerisinde duruyor.
    Örnek çalışmaları inceleyerek gerekli işlemleri yapıyorum ancak örnekte localhost kullanılıyor. Peki ben kendi websitemi kullanarak online eşleşme işlemini nasıl yapabilirim. Orayı aklım almadı, yardımcı olabilirseniz sevinirim.
    Şimdiden teşekkürler.
  • 08-05-2022, 21:02:39
    #2
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    IP adresi yazmana gerek yok hocam.

    <script src="/socket.io/socket.io.js"></script>
    var socket = io.connect();
    ile bağlanabilirsin.
  • 08-05-2022, 21:08:28
    #3
    Online bağlantı nasıl sağlanacak peki hocam mantığını kavrayamadım? Yani 2 ayrı kullanıcı nasıl eşleşecek? Bir site aracılığıyla sunucu ve istemci oluşturmak gerekmiyor mu?

    Örnekte şöyle yapmış:
    try {
    socket = IO.socket( "https://10.0.2.2:3000" );
    
        socket.on( Socket.EVENT_CONNECT, new Emitter.Listener() {
    @Override
            public void call(Object... args) {
    runOnUiThread( new Runnable() {
    @Override
                    public void run() {
    
    Toast.makeText( MainActivity.this, "Bağlandı", Toast.LENGTH_SHORT ).show();
                    }
    } );
            }
    } );
    
        socket.connect();
        Log.e( "socket",socket.isActive()+"" );
    
        registerAllEventForGame();
    
    } catch (Exception ex) {
    Toast.makeText( MainActivity.this, ex.getMessage(), Toast.LENGTH_SHORT ).show();
    
    }
    Örnekte yer alan bu url kısmını kendi siteme ait ip adresiyle değiştirmeyi denedim ama olmadı.
    socket = IO.socket( "https://10.0.2.2:3000" );
    Komik bir durum sanıyorum bilenler için ama tıkandım


    Edit: Bu arada hiç bağlanamadığım için bağlandı Toast mesajını göremedim hiç.
  • 08-05-2022, 21:14:11
    #4
    Socket io sunucu tarafı vds serverda ise, localhost veya xx sayfalardan istemci taraflı bağlantı sağlayabilirsin.
    Sanırım siz tam tersini yapıyorsunuz. Farklı bir sıkıntınız daha var canlı ortama deploy ettiğinizde ip adresi devre dışı kalır, sebebi ip adresi ile https bağlantısı sağlayamazsınız.
  • 08-05-2022, 21:22:11
    #5
    CodeDev adlı üyeden alıntı: mesajı görüntüle
    Socket io sunucu tarafı vds serverda ise, localhost veya xx sayfalardan istemci taraflı bağlantı sağlayabilirsin.
    Sanırım siz tam tersini yapıyorsunuz. Farklı bir sıkıntınız daha var canlı ortama deploy ettiğinizde ip adresi devre dışı kalır, sebebi ip adresi ile https bağlantısı sağlayamazsınız.
    Şu videoda yer alan işlemleri yapmaya çalıştım(
    Android Studio Tutorial - Realtime Online Lucky Number Game with Node JS Backend SocketIO - YouTube ), yerel diskte cmd üzerinden node.js gerekli dosyalarını indirip bir klasörde tutuyor. Ben o dosyaları aynen alıp ftp üzerinden siteme ait public bir klasöre attım, mantıken böyle olabileceğini sandım ama sanıyorum mantık farklı işliyor. Fazla düz mantık düşündüm galiba. Peki nasıl bağlanabilirim? Aklım durdu sanki, hakim olduğum bir konu da değil node.js
    Kendimi tam olarak ingilizce ifade edemediğim için internette de mantıklı bir izah bulamadım
  • 08-05-2022, 21:36:14
    #6
    mobiledev adlı üyeden alıntı: mesajı görüntüle
    Şu videoda yer alan işlemleri yapmaya çalıştım(
    Android Studio Tutorial - Realtime Online Lucky Number Game with Node JS Backend SocketIO - YouTube ), yerel diskte cmd üzerinden node.js gerekli dosyalarını indirip bir klasörde tutuyor. Ben o dosyaları aynen alıp ftp üzerinden siteme ait public bir klasöre attım, mantıken böyle olabileceğini sandım ama sanıyorum mantık farklı işliyor. Fazla düz mantık düşündüm galiba. Peki nasıl bağlanabilirim? Aklım durdu sanki, hakim olduğum bir konu da değil node.js
    Kendimi tam olarak ingilizce ifade edemediğim için internette de mantıklı bir izah bulamadım
    Videoda anlatılanı doğru anlamışsınız, lakin deploy aşamasında işler böyle yürümüyor. Hakim olmadığınız için önce localhostta iyice kendinizi geliştirmemiz gerekiyor, sonrası bir kaç prosedürden ibaret. Bu şekilde imkansıza oynuyorsunuz bilginiz olsun.
  • 08-05-2022, 22:17:21
    #7
    CodeDev adlı üyeden alıntı: mesajı görüntüle
    Videoda anlatılanı doğru anlamışsınız, lakin deploy aşamasında işler böyle yürümüyor. Hakim olmadığınız için önce localhostta iyice kendinizi geliştirmemiz gerekiyor, sonrası bir kaç prosedürden ibaret. Bu şekilde imkansıza oynuyorsunuz bilginiz olsun.
    localhost’ta denemelere devam etmeliyim, inşallah mantığını kavrayabiliriz
    Bir soru daha sormak istiyorum, localhost’ta yapılan istemci/sunucu iletişimini kendi websitemle de yapabilirim değil mi?
  • 08-05-2022, 22:20:06
    #8
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    mobiledev adlı üyeden alıntı: mesajı görüntüle
    localhost’ta denemelere devam etmeliyim, inşallah mantığını kavrayabiliriz
    Bir soru daha sormak istiyorum, localhost’ta yapılan istemci/sunucu iletişimini kendi websitemle de yapabilirim değil mi?
    Sunucunuzda NodeJS çalışıyorsa yapabilirsiniz. Fakat JS dosyalarını kendi sitenize atarak yapamazsınız direkt. Bir socket server kurmanız gerekiyor.
  • 08-05-2022, 22:27:43
    #9
    mobiledev adlı üyeden alıntı: mesajı görüntüle
    localhost’ta denemelere devam etmeliyim, inşallah mantığını kavrayabiliriz
    Bir soru daha sormak istiyorum, localhost’ta yapılan istemci/sunucu iletişimini kendi websitemle de yapabilirim değil mi?
    Socket io Server tarafı vds'de ise evet, kendi web siteniz veya localhost istemci aracılığıyla haberleşebilirsiniz. Socket io server tarafı web sayfalarının çalıştığı klasik hosting hesaplarında çalışmaz, bu aklınızda bulunsun. Yani Sorunuza tekrar dönersek elinizdeki mevcut materyaller ile hayır.