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 可以在一帧中多次发送吗?的主要内容,如果未能解决你的问题,请参考以下文章

unity检查函数是否在一帧中执行

Flex - XMLSocket 截断 XML 的最后结束标记 - 为啥?

XMLSocket 可以接收数据但不能发送

单击一帧中的链接并在另一帧中显示 JSP

Flash setInterval 问题

带有 allowUserInteraction 的 UIView.animate 仅在动画的最后一帧中启用 UIButton