GroupSpecifier class用户构造不透明的字符"groupspecs”传递给NetStream和NetGroup构造器,一个"groupspecs”指定一个个对等的RTMFP,包括功能,限制和授权用户使用"groupspecs”,默认情况下,所有功能缺省不能用,但是允许点对点的连接
RTMFP组内邻居有以下方面介绍:
。服务器通道自动引导
当一个用户连接上一个RTMFP,服务端引导它加入所在的组,要启动自动引导,设置GroupSpecifier.serverChannelEnabled=true
。明确peerID交换
两个或者更多共享者通过peerIDs传递信息,它们多种方式交换信息方式通过web services告诉其它人
。局域网端共享者的发现
用GroupSpecifier class的局域网网内查找,局域网共享者着允许服务端到客户端的RTMFP连接,他的NetSream和NetGroup独享自动定位共享者和假如组在当前子网,共享者不能在局域网内被发现除非它们在同一个组,如果共享着匹配groupspecs但在不同的子网,没有错误或者其它事件产生假如他们没有发现彼此
下面的代码显示了怎么让局域网的共享者发现彼此,这个代码可能卸载一个回调函数里面
var nc = new NetConnection();
// 协议必须是RTMFP
nc.connect("rtmfp://localhost/appname");
var gs = new GroupSpecifier("discovery-test");
// 允许局域网用户发现彼此
gs.ipMulticastMemberUpdatesEnabled = true;
//共享者交换的组播地址
gs.addIPMulticastAddress("224.0.0.255:30000");
// 组播流
gs.multicastEnabled = true;
var ns = new NetStream(nc, gs.toString());
GroupSpecifier constructor
new GroupSpecifier(name:String)
建立一个GroupSpecifier对象,缺省情况下,所有功能禁止,但是点对点的连接是允许的
参数:name 一个组的名字,所有用户通过这个名字加入组
返回:一个GroupSpecifier对象假如成功,如果name为空或者没有,将抛出javascript错误
例子:下面的列子建立一个GroupSpecifier对象,这个组建立允许组播和发送消息,这个组允许服务端通道
var groupSpecifier = new GroupSpecifier("com.example.someapp");
groupSpecifier.multicastEnabled = true;
groupSpecifier.postingEnabled = true;
groupSpecifier.serverChannelEnabled = true;
GroupSpecifier.addIPMulticastAddress()
groupSpecifier.addIPMulticastAddress(address, port)
导致相连的NetStream和NetGroup假如Ip组播群和接受UDP端口数据
GroupSpecifier.addBootstrapPeer()
groupSpecifier.addBootstrapPeer(peerID)
导致关联的NetStream和NetGroup初始化相连的连接连接到PeerID
address: 一个加入组播的IPv4或者IPv6的地址,后面可以加上(:)和端口号,
port 一个数字,一个udp端口号接受组播数据,如果端口为空,端口必须在address后面,否则UDP端口不被指定
GroupSpecifier.authorizations()
groupSpecifier.authorizations()
返回一个密码字符串,是组播发布的密码
GroupSpecifier.encodeBootstrapPeerIDSpec()
groupSpecifier.encodeBootstrapPeerIDSpec(peerID)
编码和返回一个字符串,表示一个引导的peerID,假如把这个字符串添加到组,相连的netStream和netGroup初始化连接到peerId
GroupSpecifier.encodeIPMulticastAddressSpec()
groupSpecifier.encodeIPMulticastAddressSpec(address, port)
编码和返回一个Ip和socket地址,如果你添加这个字符串到组,相连的NetStream和NetGroup将假如这个ip组播和监听这个UDP端口
address:地址,port端口
GroupSpecifier.encodePostingAuthorization()
groupSpecifier.encodePostingAuthorization(password)
编码和返回一个字符串密码,当你发送密码,你能连接到组然后发送
password发送的密码
GroupSpecifier.encodePublishAuthorization()
groupSpecifier.encodePublishAuthorization(password)
编码和返回一个字符串发送密码,当组播发送这个保护密码,你能够连接连接组和发送
GroupSpecifier.groupSpecWithAuthorizations()
groupSpecifier.groupSpecWithAuthorizations()