Esempio n. 1
0
        public void Connect(bool session_reliability)
        {
            message_number_ = 0;

            if (session_ == null)
            {
                session_ = FunapiSession.Create(server_ip_, session_reliability);
                session_.SessionEventCallback    += onSessionEvent;
                session_.TransportEventCallback  += onTransportEvent;
                session_.TransportErrorCallback  += onTransportError;
                session_.ReceivedMessageCallback += onReceivedMessage;

                for (int i = 0; i < 3; ++i)
                {
                    TransportOption option = new TransportOption();
                    if (protocols[i] == TransportProtocol.kTcp)
                    {
                        TcpTransportOption tcp_option = new TcpTransportOption();
                        tcp_option.EnablePing          = true;
                        tcp_option.PingIntervalSeconds = 1;
                        tcp_option.PingTimeoutSeconds  = 3;
                        option = tcp_option;
                    }
                    else
                    {
                        option = new TransportOption();
                    }

                    option.ConnectionTimeout = 3f;

                    //if (protocols[i] == TransportProtocol.kTcp)
                    //    option.Encryption = EncryptionType.kIFunEngine1Encryption;
                    //else
                    //    option.Encryption = EncryptionType.kIFunEngine2Encryption;

                    ushort port = getPort(protocols[i], encodings[i]);
                    session_.Connect(protocols[i], encodings[i], port, option);
                }
            }
            else
            {
                for (int i = 0; i < 3; ++i)
                {
                    session_.Connect(protocols[i]);
                }
            }
        }
    public void OnButtonConnect()
    {
        if (session == null || address_changed)
        {
            createSession();
        }

        TransportOption option = null;

        if (info.protocol == TransportProtocol.kTcp)
        {
            TcpTransportOption tcp = new TcpTransportOption();

            // If this option is set to true,
            // it will automatically try to reconnect within the Transport when it is disconnected.
            tcp.AutoReconnect = false;
            option            = tcp;
        }

        session.Connect(info.protocol, info.encoding, info.port, option);
    }
    public void StartClient(string server_ip, ushort port, string user_id)
    {
        user_id_ = user_id;

        GameObject panel = GameObject.Find("MainPanel");

        if (panel != null)
        {
            mainMenu = panel.GetComponent <LobbyMainMenu>();
        }

        session_ = FunapiSession.Create(server_ip);
        session_.TransportEventCallback  += onTransportEvent;
        session_.ReceivedMessageCallback += onReceived;

        TcpTransportOption option = new TcpTransportOption();

        option.ConnectionTimeout = 10f;

        session_.Connect(TransportProtocol.kTcp, FunEncoding.kJson, port, option);
    }
Esempio n. 4
0
    TransportOption makeOption(TransportProtocol protocol)
    {
        TransportOption option = null;

        if (protocol == TransportProtocol.kTcp)
        {
            TcpTransportOption tcp_option = new TcpTransportOption();
            tcp_option.Encryption    = tcpEncryption;
            tcp_option.AutoReconnect = autoReconnect;
            tcp_option.DisableNagle  = disableNagle;

            if (usePing)
            {
                tcp_option.SetPing(1, 20, true);
            }

            option = tcp_option;
        }
        else if (protocol == TransportProtocol.kUdp)
        {
            option            = new TransportOption();
            option.Encryption = udpEncryption;
        }
        else if (protocol == TransportProtocol.kHttp)
        {
            HttpTransportOption http_option = new HttpTransportOption();
            http_option.Encryption = httpEncryption;
            http_option.UseWWW     = useWWW;

            option = http_option;
        }

        option.ConnectionTimeout  = 10f;
        option.SequenceValidation = sequenceValidation;

        return(option);
    }