Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash客户端通过全双工连接(聊天或游戏)与Java服务器对话的最佳方式_Java_Apache Flex_Flash_Asynchronous - Fatal编程技术网

Flash客户端通过全双工连接(聊天或游戏)与Java服务器对话的最佳方式

Flash客户端通过全双工连接(聊天或游戏)与Java服务器对话的最佳方式,java,apache-flex,flash,asynchronous,Java,Apache Flex,Flash,Asynchronous,我的客户端在Flash/Flex(聊天游戏)中,它将与Java服务器进行对话。Flash客户端与服务器对话的最佳方式(协议/接口)是什么?我听说了,但这是一种请求/响应机制。我总是可以请求一些东西,然后等待来自服务器的异步通知。然后再次请求,实现类似服务器的东西 无论如何,这种通信的行业标准是什么:Flash客户端与Java服务器通信,支持来自服务器的异步“推送”通知 谢谢 考虑使用基于RTMP的解决方案(Flash中的NetConnection)。远程共享对象或直接流发布可以执行您想要的操作

我的客户端在Flash/Flex(聊天游戏)中,它将与Java服务器进行对话。Flash客户端与服务器对话的最佳方式(协议/接口)是什么?我听说了,但这是一种请求/响应机制。我总是可以请求一些东西,然后等待来自服务器的异步通知。然后再次请求,实现类似服务器的东西

无论如何,这种通信的行业标准是什么:Flash客户端与Java服务器通信,支持来自服务器的异步“推送”通知


谢谢

考虑使用基于RTMP的解决方案(Flash中的NetConnection)。远程共享对象或直接流发布可以执行您想要的操作


任何类似的操作都需要Flash媒体服务器实现,可以是Red5、Adobe、Wowza,也可以是其他的。

考虑使用基于RTMP的解决方案(Flash中的NetConnection)。远程共享对象或直接流发布可以执行您想要的操作


任何类似的操作都需要一个Flash media server实现,可以是Red5、Adobe、Wowza或其他的。

看看例子。

看看例子。

你可以使用流式AMF连接来获得实时、双向、异步推送。如果您想要免费的东西,BlazeDS可以为您做这件事(它使用Comet实现)。我在这方面运气很好,将一个频道扩展到每秒几千条消息——这对于一个简单的游戏或聊天应用程序来说已经足够了

缺点是BlazeDS使用阻塞IO,因此支持的并发连接数量有限(因为每个连接都需要自己的线程)。切断取决于您正在使用的应用程序服务器,但根据我的经验,如果没有资源耗尽,您将永远无法获得超过几百个


因此,如果您只需要几百个并发用户,那么BlazeDS和StreamingAMF可能就可以了。如果你需要更多的东西,你将不得不接受Michael的建议,并为非阻塞IO支付昂贵的费用。

你可以使用流式AMF连接来获得实时、双向、异步推送。如果您想要免费的东西,BlazeDS可以为您做这件事(它使用Comet实现)。我在这方面运气很好,将一个频道扩展到每秒几千条消息——这对于一个简单的游戏或聊天应用程序来说已经足够了

缺点是BlazeDS使用阻塞IO,因此支持的并发连接数量有限(因为每个连接都需要自己的线程)。切断取决于您正在使用的应用程序服务器,但根据我的经验,如果没有资源耗尽,您将永远无法获得超过几百个


因此,如果您只需要几百个并发用户,那么BlazeDS和StreamingAMF可能就可以了。如果你需要更多的东西,你必须听从Michael的建议,用非阻塞IO支付昂贵的费用。

在使用BlazeDS、LCD、Granite、Red5等产品时,你有几种选择。请注意,我只知道LCD包括下面列出的所有选项a)b)c)d)(如果我错了,也许有人可以添加评论)

a) 全双工套接字上的RMTP b) 流式 c) 长轮询 d) 短轮询

对于b)c)d)您可以在阻塞IO和非阻塞IO之间进行选择。a) 正在使用非阻塞IO

它们各有优缺点。例如,流式传输是通过两个连接实现的——一个永远保持打开状态,服务器将使用ti推送消息,另一个在客户端想要发送消息时打开。然而,一些代理可以决定,它将不允许开放连接超过20秒,在这种情况下,流是不可能的

更多细节可以在Damon上找到。乍一看,你可能会在这个链接上找到太多的信息,但事实并非如此。事实上,你需要读更多的文章(或书籍,比如)。这不是一个容易的主题,如果你需要构建一个专业的解决方案,你需要详细了解所有方面

还有另一种选择,使用Flash套接字构建您自己的定制协议,并回退到另一种类型的通道,但开发类型将非常重要


您也可以从我所知的专为游戏行业打造的ElectroServer或SmartFox等服务器上了解一下。

在使用BlazeDS、LCD、Granite、Red5等产品时,您可以使用多个选项。请注意,我只知道LCD包含下面列出的所有选项a)b)c)d)(如果我错了,也许有人可以添加评论)

a) 全双工套接字上的RMTP b) 流式 c) 长轮询 d) 短轮询

对于b)c)d)您可以在阻塞IO和非阻塞IO之间进行选择。a) 正在使用非阻塞IO

它们各有优缺点。例如,流式传输是通过两个连接实现的——一个永远保持打开状态,服务器将使用ti推送消息,另一个在客户端想要发送消息时打开。然而,一些代理可以决定,它将不允许开放连接超过20秒,在这种情况下,流是不可能的

更多细节可以在Damon上找到。乍一看,你可能会在这个链接上找到太多的信息,但事实并非如此。事实上,你需要读更多的文章(或书籍,比如)。这不是一个容易的主题,如果你需要构建一个专业的解决方案,你需要详细了解所有方面

还有另一种选择,使用Flash套接字构建您自己的定制协议,并回退到另一种类型的通道,但开发类型将非常重要

您也可以从我所知道的内容中了解一下诸如ElectroServer或SmartFox之类的服务器,它们是专门为游戏行业构建的。

是NetConnection li吗