Red5 : Closing RTMPMinaConnection due to long handshake
Posté dans Flash le 16 juillet 2010 par Stéphane – 1 CommentaireRed5 : Closing RTMPMinaConnection due to long handshake
Red5 est un serveur de streaming pour déployer de la vidéo, nous en avons déjà largement parlé sur ligams.com. L’un des logs récurrents que l’on peut avoir avec Red5 est l’erreur de handshake.
Cette erreur n’est pas issue d’une cause unique, c’est pourquoi il est important de bien en identifier la cause et de respecter la logique des concepteurs de Red5. Si vous n’êtes pas familier avec Red5, voici déjà comment installer un serveur Red5.
Causes du long handshake
- L’application Red5 est mal installée : en réalité votre client Flash/Flex cherche à se connecter à une application qui n’existe pas, le serveur renverra donc false lors de la connexion.
- L’application met trop de temps à répondre : cela se produit si le timeout survient, par défaut, il est de 5 secondes ce qui est largement suffisant; mais vous pouvez tout de même augmenter la valeur du timeout dans la conf Red5.
- L’une des méthodes appConnect, appJoin, RoomConnect ou RoomJoin renvoi false, cela génère un long handshake.
C’est ce 3e cas dont nous allons parler.
Erreur fréquente
Voici une erreur fréquente à ne pas faire :
public boolean appConnect( IConnection conn , Object[] params )
{
//processus d'authentification
if(authentification)
{
return true;
}
else
{
rejectClient("Erreur d'authentification");
//il faudrait renvoyer vrai
return false;
}
}
Retourner false signifie en réalité que quelque chose s’est produit dans connexion à l’application Red5, il ne faut pas renvoyer false lorsque celle ci s’est bien déroulée. Il en va de même pour les méthodes appConnect, appJoin, RoomConnect et RoomJoin.
Appeler la méthode parente et renvoyer son résultat est bien plus correct; au pire, renvoyez true systématiquement si vous n’invoquez pas la méthode de la super classe ApplicationAdapter.






