コード例 #1
0
        void onPeerEvent(FunapiRpcPeer peer, PeerEventType type)
        {
            onPeerEventCallback(peer, type);

            if (!active_)
            {
                return;
            }

            if (type == PeerEventType.kDisconnected ||
                type == PeerEventType.kConnectionFailed ||
                type == PeerEventType.kConnectionTimedOut)
            {
                if (!peer.abort && peer_list_.Exists(peer.uid))
                {
                    peer.Reconnect();
                }

                if (peer == master_peer_)
                {
                    onMasterDisconnected(peer);
                    return;
                }
            }
        }
コード例 #2
0
        void onPeerEventBeforeConnect(FunapiRpcPeer peer, PeerEventType type)
        {
            onPeerEventCallback(peer, type);

            if (type == PeerEventType.kConnected)
            {
                peer.SetEventHandler(onPeerEvent);
            }
            else
            {
                int index = 0;
                if ((cur_index_ + 1) < option_.Addrs.Count)
                {
                    index = cur_index_ + 1;
                }

                if (index == cur_index_)
                {
                    if (!peer.abort)
                    {
                        peer.Reconnect();
                    }
                }
                else
                {
                    peer_list_.Remove(peer);

                    event_.Add(delegate {
                        onConnect(index);
                    }, 0.5f);
                }
            }
        }