我遇到了一个项目问题,该项目使用Smartfox Server密集使用套接字。有时,使用Chrome时,套接字数据似乎包含以前的数据(来自SFS的消息是双重的)。
无论如何,我的问题很简单;无论何时从套接字读取数据,你应该在之后调用flush()方法吗?我知道强烈建议您在发送数据时这样做。
....
socket.addEventListener(ProgressEvent.SOCKET_DATA, handleSocketData);
....
private function handleSocketData(evt:Event):void
{
var o:Object = socket.readObject();
....
socket.flush(); // is that necessary???
}
答案 0 :(得分:2)
答案 1 :(得分:0)
不,您应该阅读回复数据,例如 -
while ( socket.bytesAvailable ) {
var data:String = socket.readUTF();
Alert.show(data);
}
答案 2 :(得分:0)
我们也在Flash中使用Socket和SFS服务器。我们从不在读取后刷新套接字,我们只在写入其字节缓冲区后才刷新它(并且必须这样做)。