使用自定义Java服务器设置AS3 NetConnection

使用自定义Java服务器设置AS3 NetConnection,java,actionscript-3,sockets,flash,live-streaming,Java,Actionscript 3,Sockets,Flash,Live Streaming,问题是:如何使用客户端的NetConnection在ActionScript上编写的客户端和Java上编写的服务器之间正确设置连接,以进行流媒体直播? 在ActionScript中使用套接字(Socket、XMLSocket、DatagramSocket)时,我们需要在服务器端提供安全策略检查/应答,这个过程绝对清晰,工作正常。 但是,如果我们需要流式传输实时媒体,我们必须使用NetConnection类而不是sockets。这就是问题开始的地方。 看起来NetConnection以不同的方式工


问题是:如何使用客户端的NetConnection在ActionScript上编写的客户端和Java上编写的服务器之间正确设置连接,以进行流媒体直播?

在ActionScript中使用套接字(Socket、XMLSocket、DatagramSocket)时,我们需要在服务器端提供安全策略检查/应答,这个过程绝对清晰,工作正常。

但是,如果我们需要流式传输实时媒体,我们必须使用NetConnection类而不是sockets。这就是问题开始的地方。 看起来NetConnection以不同的方式工作,提供了一种特殊的机制在服务器端与之连接。服务器端的标准安全策略检查显示有不同的数据从NetConnection实例从客户端传入。

下面是我们从简单套接字接收的示例:

60 112 111 108 105 99 121 45 102 105 108 101 45 114 101 113 117 101 115 116 47 62 
下面是我们从NetConnection实例(5次尝试)收到的信息:

我知道,NetConnection可以与Flash媒体服务器以及Red5和其他Java实现的web服务器配合使用。所以可以肯定地实现这种连接,但是


怎么做呢?你的任何想法、建议、例子等都会很有帮助!谢谢。

我这么做已经有一段时间了,但是如果memory Services Flash在建立连接后立即通过套接字发送一些XML消息,并且您的服务器必须使用跨域策略文件进行回复,否则连接将断开。我看看能不能找到手册的正确部分。@ChrisKitching谢谢你的回复!我知道在建立连接时,NetConnection使用与套接字相同的原理,但我完全不知道NetConnection作为请求发送了什么(因为此请求的字节表示形式不同,正如您从示例中看到的那样),它期望的正确响应是什么。。。谢谢你提供关于“跨域政策”的信息,我会查一下……是的,对不起,我帮不了你什么忙。我曾经为Flash编写过一个Java服务器应用程序并解决了这个问题,但那是4年前的事了:我的内存可能已经过时了,到目前为止,我还没有找到我从中获得的文档。祝你好运,希望有人能给你一个正确的答案!设置RTMP不是我的职责,我只是在一切正常时处理接收到的音频/视频字节。。不管怎样,因为你得到了字节
0x03
0x00
,所以它看起来像一个(有人说是3步,有人说是4步,你的看起来像5步)。。。无论如何,这篇文章的第1页和第2页可能会对您有所帮助。同时,您也可以在这里显示字节的十进制值。。您是否对字节使用了
跟踪
?试试这个(很抱歉,找不到特定的小示例,所以忽略其余的代码)。无论如何,这将在接收时显示字节值,因为有时您必须将完全相同的接收字节重复回服务器以完成握手。如果您看到
FFAA3C
则发送
0xFF
0xAA
0x3C
,而不是与
-128、20、115
等混淆
3 0 17 63 -43 -128 0 7 2 -111 101 -96 -14 -116 31 -60 56 -68 -59 33 -65 -89
3 0 17 -70 -73 -128 0 7 2 53 -16 15 -100 38 81 -84 15 -46 -53 35 112 -83 
3 0 18 11 -36 -128 0 7 2 117 -99 -103 83 25 29 -68 86 25 16 86 36 -28 
3 0 23 -60 -67 -128 0 7 2 21 -73 80 -12 80 -83 -52 68 15 37 -72 -47 11
3 0 24 36 4 -128 0 7 2 -25 42 -12 81 121 20 -52 57 -89 115 -112 76 -89