XMLSocket 可以在一帧中多次发送吗?
Posted
技术标签:
【中文标题】XMLSocket 可以在一帧中多次发送吗?【英文标题】:Can XMLSocket send more than once in a frame? 【发布时间】:2010-12-15 01:22:01 【问题描述】:我有一个 XMLSocket,我在同一个函数中调用了两次 send。第一次发送有效,但第二次无效? XMLSocket 是否有限制每帧只发送一条消息?我是否必须对消息进行排队并有一个 onEnterFrame 函数来检查队列并为一帧发送一条消息?
【问题讨论】:
在什么方面不起作用?您是否收到错误,或者服务器没有从第二次调用接收数据,或者第二次调用没有触发事件? XMLSocket.send 是异步的,所以它不会立即发送数据 服务器从不接收数据。 你能提供一个测试用例吗? (重现问题所需的最少代码量)。 【参考方案1】:在使用 Socket 类时必须刷新输出缓冲区。示例:
public static function write(msg:String):void
socket.writeUTFBytes(msg);
socket.flush();
但是,您是说您使用的是 XMLSocket 类?那个提供了较少的较低级别的可能性,并且应该已经为您完成了刷新,所以如果您的代码正确,我认为您不会遇到这个问题。
您可以尝试使用较低级别的 Socket 类,并在每次调用 write 方法时手动刷新输出缓冲区。见:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/Socket.html
【讨论】:
我需要 fla 才能在 Windows Mobile 设备上工作,所以我必须使用没有 Socket 类的 Flash 7。以上是关于XMLSocket 可以在一帧中多次发送吗?的主要内容,如果未能解决你的问题,请参考以下文章
Flex - XMLSocket 截断 XML 的最后结束标记 - 为啥?
带有 allowUserInteraction 的 UIView.animate 仅在动画的最后一帧中启用 UIButton