RTMP bağlantılarını bir sunucudan diğerine yönlendirin


0

Sunucular arasında dengeleyici yüklemek için bir sunucu kuruyorum (Dönüştürücüler).
Birçok kod çözme sunucum var ve cadı sunucusunun isteğine yanıt vermesini seçmek için bu sunucular arasında php algoritması ile denge istiyorum. istek RTMP'dir.
exemple:
müşteri isteği: rtmp: // balancer_ip: 1935 / live / 21? username = jhony & amp; şifre = hahaha
Dengeleyici iş akışı: en iyi dönüştürücüyü bulun ve istemci kimlik bilgilerinin bu kod çözme sunucusunda erişimi var ve müşteriyi bu kod çözme sunucusuna yönlendirin veya proxy_pass edin.

RTMP modülüyle nginx'i kurduğum ve konfigüre ettiğim kodlama sunucularında, bir php algoritması ile rtmp doğrulama ile iyi çalışıyor. İlk dengeleyici sunucusundaki istemcileri, rtmp modülündeki rtmp modülünde on_play parametresiyle istemcileri yönlendirmeye çalıştım ama başaramadım.
Bu yüzden başkalarının araştırmalarını yapıyorum ve bu modülle nginx TCP ve UDP Yük Dengelemesi'ni buldum, bu modülle istemcilerin isteklerini kod çözücülere yönlendirebilir ya da yeniden yönlendirebilirim, ancak çoğu zaman sorun dengeleyici proxy_ geçerek istemciyi yanlış kod çözme sunucularına (istemci sahip ' t Bu kod çözme sunucusuna erişim veya rtmp akışı azaltıldı).

#in balancer nginx.conf
stream {
    #listen on rtmp port
    server {
        listen     1935;
        proxy_pass rtmp_servers;
    }
    upstream rtmp_servers {
        server transcoder_1_ip:1935;
        server transcoder_2_ip:1935;
        #check interval=10 passes=2 fails=3 port=1935;
    }
}
#in transcoder nginx.conf
rtmp {
    server {
        listen 1935;
        application live {
            live on;
            on_play http://127.0.0.1:80/rtmp-auth;
            notify_method get;
            record off;
        }
    }
}
// php function for rtmp stream authentication in transcoder
$app->get('/rtmp-auth', function (Request $request) use ($app) {
    $response = new Response();
    $response->setStatusCode(404);
    // check with database if user name and posword is ok
        $response->setStatusCode(201);
    }
    /* i tryed in balancer with this code and send a redirection
       in the return but she dont work :(*/
    return $response;
})->bind('rtmpAuth');

Yani, sunucular arasında özel bir algoritma ile yönlendirmek veya dengelemek için herhangi bir yolu var mı?
Veya her müşteri isteğinde, müşterileri yönlendirmeden önce kod dönüştürücünün yanıtını kontrol edin
Not: Kod çözme sunucularının müşteriler ülkeleri gibi bazı ölçütlerle çalıştığım için ... istemcilerin isteklerini yönlendirmek için algoritma oluşturmam gerekiyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.