2010-12-10 30 views
0

J'ai des problèmes avec un projet qui utilise intensivement les sockets avec Smartfox Server. Parfois, avec Chrome, les données de socket semblent contenir des données antérieures (les messages de SFS sont en double).Socket.flush() est-il nécessaire après la lecture des données?

De toute façon ma question est assez simple; à chaque fois que vous lisez des données à partir d'une socket, êtes-vous censé appeler la méthode flush() après? Je sais qu'il est fortement recommandé de le faire lorsque vous envoyez des données.

.... 
socket.addEventListener(ProgressEvent.SOCKET_DATA, handleSocketData); 
.... 

private function handleSocketData(evt:Event):void 
{ 
    var o:Object = socket.readObject(); 
    .... 
    socket.flush(); // is that necessary??? 
} 

Répondre

0

Non, vous devriez lire les données de réponse avec quelque chose comme -

while (socket.bytesAvailable) { 
     var data:String = socket.readUTF(); 
     Alert.show(data); 
    } 
0

Nous utiliser des sockets Flash avec le serveur SFS aussi. et nous ne vidons jamais le socket après la lecture, nous le vidons seulement (et devons le faire) après avoir écrit dans son tampon d'octets.