我创建了自己的 java 套接字服务器,它不做 websocket 只是普通的旧套接字。我将每条消息都包裹在 0x00 和 0xFF 中。所以每条消息都以 0x00 开始,以 0xFF 结束。出于某种原因,当我偶尔从闪存读取它时,当消息大小超过 3000 字节时,我会收到乱码消息或消息丢失字符或消息不完整。这就是我在闪存中所拥有的。对此的任何指针将不胜感激。
private function onData(event:ProgressEvent):void
{
var obj:String;
while(_serviceSocket.bytesAvailable > 0)
{
if(_serviceSocket.readByte() == START_FRAME || _currentBuffer == null)
{
_currentBuffer = new ByteArray();
}
var byte:int;
while(true)
{
try
{
byte = _serviceSocket.readByte();
if(byte == END_FRAME){
obj = _currentBuffer.toString();
processMessage(obj);
_currentBuffer = null;
break;
}else{
_currentBuffer.writeByte(byte);
}
}catch(e:Error){
obj = _currentBuffer.toString();
processMessage(obj);
_currentBuffer = null;
break;
}
}
}
}