我有一个使用Adobe的rtmfp协议和卷云服务器的p2p游戏。当我在独立的Flash播放器中尝试时,一切似乎都运行良好,但是当我将游戏嵌入到网页时,突然间没有人无法连接到我的游戏。没有错误,连接只是一段时间后超时。
以下是我在主机上创建NetConnection的方法:
netConnection = new NetConnection();
netConnection.maxPeerConnections = 20;
netConnection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
netConnection.connect("rtmfp://p2p.rtmfp.net/3a34e[redacted]af45f80/");
public function onNetStatus(event:NetStatusEvent) : void
{
var peer:P2PNetPeer = null;
switch(event.info.code) {
case "NetConnection.Connect.Success":
streamOut = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
streamOut.client = {onPeerConnect:onPeerConnect};
streamOut.publish(netConnection.nearID);
break;
}
在客户端几乎相同,除非我获得NetConnection.Connect.Success我创建inStream:
streamIn = new NetStream(netConnection, farId);
streamIn.client = {msg:onMessageReceived};
streamIn.addEventListener(NetStatusEvent.NET_STATUS, onInStreamStatus, false, 0, true);
streamIn.play(farId);
这个inStream是导致问题的那个,它从不连接到他的farId指定的主机(如果游戏是从网页运行的话,我将玩家与使用我自己的服务器的/ farIds交换)。当我使用独立播放器在本地运行时,它几乎立即连接。
我正在检查其他状态和错误,但它们在这里并不重要(如上所述,我没有收到任何错误,只是一段时间后超时)
知道这里可能会发生什么吗?