Пример #1
0
    public static NetworkRequest Prepare(short type)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.CHART);
        request.AddShort16(type);

        return request;
    }
    public static NetworkRequest Prepare(short game_id)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.PLAY_GAME);
        request.AddShort16(game_id);

        return request;
    }
    public static NetworkRequest Prepare(int player_id)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.PLAYER_SELECT);
        request.AddInt32(player_id);

        return request;
    }
    public static NetworkRequest Prepare(int hintOffset)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.CONVERGE_HINT);
        request.AddInt32(hintOffset);

        return request;
    }
Пример #5
0
		protected virtual bool OnNewWindowPolicyDecisionRequested (WebFrame frame, NetworkRequest request, WebNavigationAction action, WebPolicyDecision decision)
		{
			var val = new Value (GType.Int);
			var valueArray = new ValueArray (5u);
			var array = new Value[5];

			array [0] = new Value (this);
			valueArray.Append (array [0]);
			array [1] = new Value (frame);
			valueArray.Append (array [1]);
			array [2] = new Value (request);
			valueArray.Append (array [2]);
			array [3] = new Value (action);
			valueArray.Append (array [3]);
			array [4] = new Value (decision);
			valueArray.Append (array [4]);
			GLib.Object.g_signal_chain_from_overridden (valueArray.ArrayPtr, ref val);
			var array2 = array;
			for (int i = 0; i < array2.Length; i++) {
				var value = array2 [i];
				value.Dispose ();
			}
			bool result = (bool)val;
			val.Dispose ();
			return result;
		}
    /// <summary>
    /// Creates a request containing battle results
    /// </summary>
    /// <param name="res">The result</param>
    public static NetworkRequest Prepare(BattleResult res)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.CLASH_END_BATTLE);
        request.AddInt32((int)res);

        return request;
    }
Пример #7
0
 public static NetworkRequest Prepare(int gameid, int pairParam)
 {
     NetworkRequest request = new NetworkRequest(NetworkCode.PAIR);
     request.AddInt32 (gameid);
     request.AddInt32 (pairParam);
     return request;
 }
    public static NetworkRequest Prepare(string message)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.ERROR_LOG);
        request.AddString(message);

        return request;
    }
Пример #9
0
    public static NetworkRequest Prepare(string user_id, string password)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.LOGIN);
        request.AddString(user_id);
        request.AddString(password);

        return request;
    }
    public static NetworkRequest Prepare(int player_id, int ecosystem_id)
    {
        NetworkRequest request = new NetworkRequest (NetworkCode.CONVERGE_PRIOR_ATTEMPT_COUNT);
        request.AddInt32 (player_id);
        request.AddInt32 (ecosystem_id);

        return request;
    }
    public static NetworkRequest Prepare(short action, short type)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.SPECIES_ACTION);
        request.AddShort16(action);
        request.AddShort16(type);

        return request;
    }
Пример #12
0
    public static NetworkRequest Prepare(int zone_id, int user_id)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.ZONE);
        request.AddInt32(zone_id);
        request.AddInt32(user_id);

        return request;
    }
Пример #13
0
    public static NetworkRequest Prepare(string version, string session_id)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.CLIENT);
        request.AddString(version);
        request.AddString(session_id);

        return request;
    }
    public static NetworkRequest Prepare(int world_id, int player_id)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.ECOSYSTEM);
        request.AddInt32(world_id);
        request.AddInt32(player_id);

        return request;
    }
Пример #15
0
    /*
     * types:
     * 0 - regular message
     * 1 - server message (?)
     * 2 - private message
     *
     * status:
     * 0 - OK
     * 1 - whipser failed
     */
    public static NetworkRequest Prepare(short type, string message, string recipient)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.MESSAGE);
        request.AddShort16(type);
        request.AddString(message);
        request.AddString(recipient);

        return request;
    }
Пример #16
0
    public static void Send(NetworkRequest packet, Callback callback)
    {
        NetworkManager.Send(packet);

        int protocol_id = packet.GetID();
        if (!callbackList.ContainsKey(protocol_id)) {
            callbackList[protocol_id] = new Queue<Callback>();
        }

        callbackList[protocol_id].Enqueue(callback);
    }
    /// <summary>
    /// Generates a request with the following format:
    /// 	id of this protocol (short)
    /// 	id of player to be attacked (int)
    /// 	# of species in attack config (int)
    /// 	for each species in attack config:
    /// 		species id (int)
    /// </summary>
    /// <param name="otherPlayerID">the player to attack</param>
    /// <param name="species">list of species ids to use in attack</param>
    public static NetworkRequest Prepare(int otherPlayerID, List<int> species)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.CLASH_INITIATE_BATTLE);
        request.AddInt32(otherPlayerID);
        request.AddInt32(species.Count);
        foreach(int s in species){
            request.AddInt32(s);
        }

        return request;
    }
Пример #18
0
 public NetworkRequest Clone()
 {
     var r = new NetworkRequest();
     r.Verb = Verb;
     r.Data = Data;
     r.Param = Param;
     r.SourceID = SourceID;
     r.OverlordID = OverlordID;
     r.AuthKey = AuthKey;
     return r;
 }
    public static NetworkRequest Prepare(int zone_id, int player_id, int vegetation_capacity, int natural_event)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.ZONE_UPDATE);
        request.AddInt32(zone_id);
        //		request.addInt32(Constants.USER_ID);
        request.AddInt32(player_id);
        request.AddInt32(vegetation_capacity);
        request.AddInt32(natural_event);

        return request;
    }
Пример #20
0
    public static NetworkRequest Prepare(short game_id, int credits)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.END_GAME);
        request.AddShort16(game_id);

        if (game_id == 1) {
            request.AddInt32(credits);
        }

        return request;
    }
Пример #21
0
    public static NetworkRequest Prepare(string fname, string lname, string email, string password, string name, short color)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.REGISTER);
        request.AddString(fname);
        request.AddString(lname);
        request.AddString(email);
        request.AddString(password);
        request.AddString(name);

        return request;
    }
    public static NetworkRequest Prepare(short type, Dictionary<int, int> cartList)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.SHOP_ACTION);
        request.AddShort16(type);
        request.AddShort16((short) cartList.Count);

        foreach (KeyValuePair<int, int> entry in cartList) {
            request.AddInt32(entry.Key);
            request.AddInt32(entry.Value);
        }

        return request;
    }
    public static NetworkRequest Prepare(short action, Dictionary<int, int> speciesList)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.SPECIES_ACTION);
        request.AddShort16(action);
        request.AddShort16((short) speciesList.Count);

        foreach (KeyValuePair<int, int> entry in speciesList) {
            request.AddInt32(entry.Key);
            request.AddInt32(entry.Value);
        }

        return request;
    }
    public static NetworkRequest Prepare(
        int playerId,
        int ecosystemId,
        int attemptId,
        int score
        )
    {
        NetworkRequest request = new NetworkRequest (NetworkCode.CONVERGE_NEW_ATTEMPT_SCORE);
        request.AddInt32 (playerId);
        request.AddInt32 (ecosystemId);
        request.AddInt32 (attemptId);
        request.AddInt32 (score);

        return request;
    }
    public void Send(NetworkRequest request)
    {
        if (!socketReady) {
            SetupSocket();
        }

        GamePacket packet = request.packet;

        byte[] bytes = packet.getBytes();
        theStream.Write(bytes, 0, bytes.Length);

        if (request.request_id != Constants.CMSG_HEARTBEAT) {
            Debug.Log("Sent Request No. " + request.request_id + " [" + request.ToString() + "]");
        }
    }
Пример #26
0
        public NetworkRequest ProcessRequest(NetworkRequest r)
        {
            var verb = Deserialise <BrowseVerb>(r.Data);

            List <BrowsingFile> results;

            if (_infoService.GetPath(verb.Path, verb.NoCache, true, out results))
            {
                Results = results;
            }

            r.Data = Serialize(this);
            //Clear collection to assist GC
            results.Clear();
            return(r);
        }
    public static NetworkRequest get(short request_id)
    {
        NetworkRequest request = null;

        if (requestTable.ContainsKey(request_id))
        {
            request            = (NetworkRequest)Activator.CreateInstance(requestTable[request_id]);
            request.request_id = request_id;
        }
        else
        {
            Debug.Log("Request [" + request_id + "] Not Found");
        }

        return(request);
    }
Пример #28
0
        public void Stop()
        {
            run = false;
            //Kill client connections to external overlords
            foreach (Uplink client in extOverlordServers.ToList())
            {
                client.Kill();
            }

            var req = new NetworkRequest {
                Verb = "DISCONNECT", SourceID = serverNode.ID
            };

            SendToStandardClients(req);
            SendToOverlordClients(req);
        }
Пример #29
0
        private bool HandleSearch(RequestEventArgs e, NetworkRequest req)
        {
            //We dont do this on a server..
            var            verb   = new SearchVerb(null);
            NetworkRequest result = verb.ProcessRequest(req);

            byte[] data      = Encoding.UTF8.GetBytes(result.Data);
            var    generator = new ResponseWriter();

            e.Response.ContentLength.Value = data.Length;
            generator.SendHeaders(e.Context, e.Response);
            e.Context.Stream.Write(data, 0, data.Length);
            e.Context.Stream.Flush();
            data = null;
            return(true);
        }
Пример #30
0
 private bool HandleChat(NetworkRequest r, RequestEventArgs e)
 {
     //If an overlord id is set then this has come from an external overlord
     if (string.IsNullOrEmpty(r.OverlordID))
     {
         r.OverlordID = serverNode.ID;
         SendToStandardClients(r);
         SendToOverlordClients(r);
     }
     else
     {
         SendToStandardClients(r);
     }
     SendResponse(e, null);
     return(true);
 }
 /// <summary>
 /// Creates the network request in the format
 /// 	id of this protocol (short)
 /// 	terrain name (string)
 /// 	# of species in config (int)
 /// 	for each species in config
 /// 		species id (int)
 /// 		instance count (int)
 /// 		for each instance
 /// 			x-coordinate (float)
 /// 			y-coordinate (float)
 /// </summary>
 /// <param name="terrainName">the terain name</param>
 /// <param name="config">The species in the config, with species id's as keys
 /// and Vector2's of x- & y-coordinates as values.</param>
 public static NetworkRequest Prepare(string terrainName, Dictionary<int, List<Vector2>> config)
 {
     NetworkRequest request = new NetworkRequest(NetworkCode.CLASH_DEFENSE_SETUP);
     request.AddString(terrainName);
     request.AddInt32(config.Count);
     foreach(var pair in config){
         request.AddInt32(pair.Key);
         List<Vector2> positions = pair.Value;
         request.AddInt32(positions.Count);
         foreach(Vector2 v in positions){
             request.AddFloat(v.x);
             request.AddFloat(v.y);
         }
     }
     return request;
 }
Пример #32
0
 public NetworkRequest ProcessRequest(NetworkRequest r)
 {
     Allowed = !model.DisableComparision;
     if (Allowed)
     {
         lock (sync)
         {
             if (null == cachedResponse || Environment.TickCount - cacheTime > 1000 * 300)
             {
                 var si = new SystemInfo();
                 Node = new CompareNode();
                 Node.SetData("COMP-CPUSpeed", si.GetCPUSpeed().ToString());
                 Node.SetData("COMP-CPUType", si.GetCPUType());
                 Node.SetData("COMP-CPUCores", si.GetCPUCores().ToString());
                 Node.SetData("COMP-CPUThreads", si.GetCPUThreads().ToString());
                 Node.SetData("COMP-CPUBits", si.GetCPUBits().ToString());
                 Node.SetData("COMP-MoboBrand", si.GetMoboBrand());
                 Node.SetData("COMP-MoboModel", si.GetMoboModel());
                 Node.SetData("COMP-BIOSVersion", si.GetBIOSVersion());
                 Node.SetData("COMP-RAMSize", si.GetMemorySize().ToString());
                 Node.SetData("COMP-GPUModel", si.GetGPUDescription());
                 Node.SetData("COMP-GPUCount", si.GetGPUCount().ToString());
                 Node.SetData("COMP-GPUTotalMemory", si.GetTotalGPUMemory().ToString());
                 Node.SetData("COMP-DisplayPrimaryHeight", si.GetPrimaryDisplayHeight().ToString());
                 Node.SetData("COMP-DisplayPrimaryWidth", si.GetPrimaryDisplayWidth().ToString());
                 Node.SetData("COMP-DisplayTotalWidth", si.GetTotalDisplayWidth().ToString());
                 Node.SetData("COMP-DisplayTotalHeight", si.GetTotalDisplayHeight().ToString());
                 Node.SetData("COMP-HDDSize", si.GetTotalHDDSize().ToString());
                 Node.SetData("COMP-HDDFree", si.GetTotalHDDFree().ToString());
                 Node.SetData("COMP-HDDCount", si.GetHDDCount().ToString());
                 Node.SetData("COMP-NICSpeed", si.GetNetworkSpeed().ToString());
                 Node.SetData("COMP-SoundCard", si.GetSoundcardName());
                 cachedResponse = new NetworkRequest {
                     Data = Serialize(this)
                 };
                 cacheTime = Environment.TickCount;
             }
         }
         return(cachedResponse);
     }
     else
     {
         return(new NetworkRequest {
             Data = Serialize(this)
         });
     }
 }
Пример #33
0
        private void GetHttpRequest_Sync_Click(object sender, RoutedEventArgs e)
        {
            //var dd = m().Result;


            //byte[] bytes = null;
            //string str = null;
            //HttpRequest request = HttpRequest.CreatHttp("http://baike.baidu.com/cms/global/lemma_config.json");
            //bytes = request.Get();
            //str = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
            //this.result_tbk.Text = str;


            NetworkRequest request = NetworkRequest.CreateHttp("http://baike.baidu.com/cms/global/lemma_config.json");

            this.result_tbk.Text = request.Get <string>();
        }
Пример #34
0
 private bool HandleConversation(RequestEventArgs e, NetworkRequest req)
 {
     try
     {
         var verb = new ConversationVerb();
         verb.ProcessRequest(req);
         if (chatController.HandleMessage(verb.SourceID, verb.Nickname, verb.Message))
         {
             SendOk(e);
             return(true);
         }
     }
     catch
     {
     }
     return(false);
 }
Пример #35
0
        private bool HandleInfo(RequestEventArgs e)
        {
            e.Response.Status = HttpStatusCode.OK;
            var verb = new InfoVerb();

            verb.Node = model.LocalNode;
            NetworkRequest result = verb.CreateRequest();

            byte[] data      = Encoding.UTF8.GetBytes(result.Data);
            var    generator = new ResponseWriter();

            e.Response.ContentLength.Value = data.Length;
            generator.SendHeaders(e.Context, e.Response);
            e.Context.Stream.Write(data, 0, data.Length);
            e.Context.Stream.Flush();
            return(true);
        }
Пример #36
0
    public void Send(NetworkRequest request)
    {
        if (!socketReady)
        {
            SetupSocket();
        }

        GamePacket packet = request.packet;

        byte[] bytes = packet.getBytes();
        theStream.Write(bytes, 0, bytes.Length);

        if (request.request_id != Constants.CMSG_HEARTBEAT)
        {
            Debug.Log("Sent Request No. " + request.request_id + " [" + request.ToString() + "]");
        }
    }
Пример #37
0
        private async void PostHttpRequest_Sync_Click(object sender, RoutedEventArgs e)
        {
            string url = "http://baike.baidu.com/cms/global/lemma_config.json";

            byte[]         bytes   = null;
            string         str     = null;
            NetworkRequest request = NetworkRequest.CreateHttp(url);

            request.Body = "name=123";
            bytes        = request.Post();

            request = NetworkRequest.CreateHttp(url);
            bytes   = await request.PostAsync();

            str = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
            this.result_tbk.Text = str;
        }
Пример #38
0
        public bool ReceiveResponse(NetworkRequest r)
        {
            try
            {
                var verb = Deserialise <BrowseVerb>(r.Data);
                NoCache = verb.NoCache;
                Path    = verb.Path;
                Results = verb.Results;
                return(true);
            }
// ReSharper disable EmptyGeneralCatchClause
            catch
// ReSharper restore EmptyGeneralCatchClause
            {
            }
            return(false);
        }
Пример #39
0
        public bool Handle(RequestEventArgs e)
        {
            NetworkRequest req = Multiplexor.Decode(e.Request);

            logger.Trace("Client rx: {0} p: {1} source: {2} overlord: {3}", req.Verb, req.Param, req.SourceID,
                         req.OverlordID);
            switch (req.Verb)
            {
            case "BROWSE":
                return(HandleBrowse(e, req));

            case "UPDATE":
                return(HandleUpdate(e, req));

            case "INFO":
                return(HandleInfo(e));

            case "NOOP":
                return(HandleNOOP(e, req));

            case "GET":
                return(HandleGet(e, req));

            case "DISCONNECT":
                return(HandleDisconnect(e));

            case "CHAT":
                return(HandleChat(e, req));

            case "COMPARE":
                return(HandleCompare(e, req));

            case "SEARCH":
                return(HandleSearch(e, req));

            case "CONVERSTATION":
                return(HandleConversation(e, req));

            case "ADDDOWNLOAD":
                return(HandleAddDownload(e, req));
            }
            return(false);
        }
Пример #40
0
 private bool HandleNOOP(RequestEventArgs e, NetworkRequest req)
 {
     if (!string.IsNullOrEmpty(req.SourceID) && !string.IsNullOrEmpty(req.AuthKey))
     {
         //check details are correct
         lock (sync)
         {
             if (null !=
                 connectedClientNodes.Where(n => n.Node.ID == req.SourceID && req.AuthKey == n.Node.Secret).
                 FirstOrDefault())
             {
                 SendResponse(e, null);
                 return(true);
             }
         }
     }
     SendError(e);
     return(false);
 }
    /// <summary>
    /// Creates the network request in the format
    ///     id of this protocol (short)
    ///     terrain name (string)
    ///     # of species in config (int)
    ///     for each species in config
    ///         species id (int)
    ///         instance count (int)
    ///         for each instance
    ///             x-coordinate (float)
    ///             y-coordinate (float)
    /// </summary>
    /// <param name="terrainName">the terain name</param>
    /// <param name="config">The species in the config, with species id's as keys
    /// and Vector2's of x- & y-coordinates as values.</param>

    public static NetworkRequest Prepare(string terrainName, Dictionary <int, List <Vector2> > config)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.CLASH_DEFENSE_SETUP);

        request.AddString(terrainName);
        request.AddInt32(config.Count);
        foreach (var pair in config)
        {
            request.AddInt32(pair.Key);
            List <Vector2> positions = pair.Value;
            request.AddInt32(positions.Count);
            foreach (Vector2 v in positions)
            {
                request.AddFloat(v.x);
                request.AddFloat(v.y);
            }
        }
        return(request);
    }
Пример #42
0
    // Card Constructor
    //public void init(BattlePlayer player, int cardID, int diet,
    // int level, int attack, int health,string species_name, string type, string description

    public static NetworkRequest Prepare(int playerID, int cardID, int diet,
                                         int level, int attack, int health,
                                         string species_name, string type,
                                         string description)
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.SUMMON_CARD);

        request.AddInt32(playerID);
        request.AddInt32(cardID);
        request.AddInt32(diet);
        request.AddInt32(level);
        request.AddInt32(attack);
        request.AddInt32(health);
        request.AddString(species_name);

        // These two not used
        request.AddString(type);
        request.AddString(description);

        return(request);
    }
Пример #43
0
        async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
        {
            var item = args.SelectedItem as Item;

            if (item == null)
            {
                return;
            }
            //var Request = WebRequest.CreateHttp("http://www.zoupenghui.com");
            //var str = await NetworkRequest.CreateHttp("http://www.zoupenghui.com").GetAsync();
            //var content = Encoding.UTF8.GetString(str);
            //Debug.Write(content);
            string htmlContent = await NetworkRequest.CreateHttp("http://www.zoupenghui.com").GetAsync <string>();

            Debug.Write(htmlContent);

            await Navigation.PushAsync(new ItemDetailPage(new ItemDetailViewModel(item)));

            // Manually deselect item
            ItemsListView.SelectedItem = null;
        }
        protected override void OnHandshaked()
        {
            // Clear WebSocket send/receive buffers
            webSocketNetwork.ClearWsBuffers();

            // Fill the WebSocket upgrade HTTP request
            OnWsConnecting(NetworkRequest);

            // Set empty body of the WebSocket upgrade HTTP request
            NetworkRequest.SetBody();

            // Send the WebSocket upgrade HTTP request
            if (_syncConnect)
            {
                Send(NetworkRequest.Cache.Data);
            }
            else
            {
                SendAsync(NetworkRequest.Cache.Data);
            }
        }
Пример #45
0
        protected override void OnReceived(Byte[] buffer, Int64 offset, Int64 size)
        {
            // Receive HTTP request header
            if (NetworkRequest.IsPendingHeader())
            {
                if (NetworkRequest.ReceiveHeader(buffer, (Int32)offset, (Int32)size))
                {
                    OnReceivedRequestHeader(NetworkRequest);
                }

                size = 0;
            }

            // Check for HTTP request error
            if (NetworkRequest.IsErrorSet)
            {
                OnReceivedRequestError(NetworkRequest, "Invalid HTTP request!");
                NetworkRequest.Clear();
                Disconnect();
                return;
            }

            // Receive HTTP request body
            if (NetworkRequest.ReceiveBody(buffer, (Int32)offset, (Int32)size))
            {
                OnReceivedRequestInternal(NetworkRequest);
                NetworkRequest.Clear();
                return;
            }

            // Check for HTTP request error
            if (!NetworkRequest.IsErrorSet)
            {
                return;
            }

            OnReceivedRequestError(NetworkRequest, "Invalid HTTP request!");
            NetworkRequest.Clear();
            Disconnect();
        }
Пример #46
0
 public bool ReceiveResponse(NetworkRequest r)
 {
     try
     {
         var inc = Deserialise <CompareVerb>(r.Data);
         Node    = inc.Node;
         Allowed = inc.Allowed;
         if (null != Node)
         {
             Node.Score = inc.Node.GetSystemScore();
         }
         else
         {
             Node = new CompareNode();
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Пример #47
0
    public static NetworkRequest Prepare(
        int playerId,
        int ecosystemId,
        int attemptId,
        bool allowHints,
        int hintId,
        int timesteps,
        string config
        )
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.CONVERGE_NEW_ATTEMPT);

        request.AddInt32(playerId);
        request.AddInt32(ecosystemId);
        request.AddInt32(attemptId);
        request.AddBool(allowHints);
        request.AddInt32(hintId);
        request.AddInt32(timesteps);
        request.AddString(config);

        return(request);
    }
Пример #48
0
        private async void GetUserInfo()
        {
            GetUserInforRequestParams sParams = new GetUserInforRequestParams();

            sParams.deviceId = Configuration.GetDeviceUniqueId();
            HttpSerializeData <GetUserInforRequestParams> httpSerializeData = new HttpSerializeData <GetUserInforRequestParams>("getUserInfo.html", sParams);
            NetworkRequest networkRequest = NetworkRequest.CreateHttp(httpSerializeData.GetURL());
            var            resultJson     = await networkRequest.PostAsync <string>(JsonAnalysis.Serialize(httpSerializeData));

            HttpDeserializeData <GetUserInforResponseData> sData = JsonAnalysis.Deserialize <HttpDeserializeData <GetUserInforResponseData> >(resultJson);

            if (sData.result.error == "01")   // 未绑定账户
            {
                //todo:跳转到绑定页面,进行用户绑定
            }
            else if (sData.status.code.Equals("0000"))
            {
                //todo:跳转到签到页面
            }
            else
            {
            }
        }
Пример #49
0
    /// <summary>
    /// Envía una NetworkRequest al servidor
    /// </summary>
    /// <param name="dataToSend">Req.</param>
    public void Send(string dataToSend, int request_type = DATAGRAM_NORMAL)
    {
        var msg = Encoding.UTF8.GetBytes(dataToSend);

        byte[] datagram = BitConverter.GetBytes(request_type)
                          .Concat(BitConverter.GetBytes(_datagramId))
                          .Concat(CalculateSha256(msg))
                          .Concat(msg).ToArray();

        _datagramId++;

        if (request_type == DATAGRAM_RELIABLE)
        {
            //Apuntamos este paquete como 'pendiente de confirmar su recepción'
            var req = new NetworkRequest(_datagramId, datagram);
            _pendingSentRequests[_datagramId] = req;
        }
        try {
            _client.Send(datagram, datagram.Length);
        } catch (SocketException e) {
            Debug.Log(e);
        }
    }
Пример #50
0
 private bool HandleUpdate(RequestEventArgs e, NetworkRequest req)
 {
     if (req.AuthKey == model.Network.Overlord.Secret)
     {
         model.Network.Overlord.LastUpdate = Environment.TickCount;
         var verb = new UpdateVerb();
         verb.ProcessRequest(req);
         foreach (Node node in verb.Nodes)
         {
             Node search = model.Network.Nodes.Where(i => i.ID == node.ID).FirstOrDefault();
             if (search == null)
             {
                 //Dont allow partial updates to create clients.  Only full updates should contain the online flag.
                 if (node.ContainsKey("Online") && node.ContainsKey("Nickname") && node.ContainsKey("ID"))
                 {
                     model.Network.Nodes.Add(node);
                 }
             }
             else
             {
                 foreach (var param in node.Data)
                 {
                     search.SetData(param.Key, param.Value);
                 }
                 //Has the client disconnected?
                 if (!search.Online)
                 {
                     model.Network.Nodes.Remove(node);
                     logger.Trace("Client: Node offline update: " + node.ID);
                 }
             }
         }
         SendOk(e);
         return(true);
     }
     return(false);
 }
Пример #51
0
        private void uplink_OnDisconnect(Uplink s)
        {
            //A remote overlord has disconnected, notify local clients of all associated peering going offline.
            lock (sync)
            {
                logger.Debug("Server had uplink disconnect to {0}", s.Destination.ID);
                extOverlordServers.Remove(s);
                var verb = new UpdateVerb();
                foreach (Node node in externalNodes.ToList())
                {
                    if (node.OverlordID == s.Destination.ID || node.ID == s.Destination.ID)
                    {
                        //Check the node isnt now logged on locally
                        if (connectedClientNodes.Where(n => n.Node.ID == node.ID).Count() > 0)
                        {
                            continue;
                        }
                        verb.Nodes.Add(new Node {
                            ID = node.ID, Online = false
                        });
                    }
                    externalNodes.Remove(node);
                }
                verb.Nodes.Add(new Node {
                    ID = s.Destination.ID, Online = false
                });
                NetworkRequest req = verb.CreateRequest();
                req.OverlordID = serverNode.ID;
                SendToStandardClients(req);

                //Remove the overlord itself
                if (extOverlordServers.Contains(s))
                {
                    extOverlordServers.Remove(s);
                }
            }
        }
Пример #52
0
 public static void Send(NetworkRequest packet)
 {
     requests.Enqueue(packet);
 }
Пример #53
0
    public static NetworkRequest Prepare()
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.TOPLIST);

        return request;
    }
 public static NetworkRequest Prepare()
 {
     NetworkRequest request = new NetworkRequest(NetworkCode.NOWAITFORGAME);
     return request;
 }
Пример #55
0
        private void ProcessLanConnection(object o)
        {
            mserver.SendMessage(WhoVerb.CreateRequest());
            Domain.Entities.Network network = model.Network;
            network.PropertyChanged += network_PropertyChanged;
            while (run)
            {
                if (network.State != ConnectionState.Connected)
                {
                    //Not connected so connect automatically..

                    //Regenerate local secret to stop any updates if we reconnecting..
                    network.Overlord        = new Node();
                    network.Overlord.Secret = IDService.CreateID();
                    //Clear old peers
                    network.Nodes.Clear();

                    //Build up a prioritised server list
                    var availibleNodes = new List <DetectedNode>();

                    List <DetectedNode> detectedPeers = peerFinder.Peers.ToList();

                    //Prioritise a server we havent connected to already
                    foreach (DetectedNode peer in detectedPeers)
                    {
                        if (attemptedPeers.Where(s => s.Node == peer).Count() == 0)
                        {
                            availibleNodes.Add(peer);
                        }
                    }
                    foreach (LanPeer peer in attemptedPeers.OrderByDescending(x => x.LastConnectionTime))
                    {
                        availibleNodes.Add(peer.Node);
                    }

                    while (network.State != ConnectionState.Connected && availibleNodes.Count > 0)
                    {
                        DetectedNode node = availibleNodes[0];
                        availibleNodes.RemoveAt(0);
                        if (!Connect(network, node))
                        {
                            peerFinder.RemovePeer(node);
                        }
                    }
                }
                if (network.State == ConnectionState.Connected)
                {
                    CheckModelChanges();
                    //Check for network timeout

                    if ((Environment.TickCount - model.Network.Overlord.LastUpdate) > Model.UPLINK_TIMEOUT)
                    {
                        //We havent recently sent/recieved so went a noop so check we are still connected.
                        var req = new NetworkRequest
                        {
                            Verb     = "NOOP",
                            SourceID = model.LocalNode.ID,
                            AuthKey  = model.Network.Overlord.Secret
                        };
                        var client = new Client(model.LocalNode);
                        if (!client.Execute(req, model.Network.Overlord, 4000))
                        {
                            if (network.State == ConnectionState.Connected)
                            {
                                Disconnect();
                            }
                        }
                    }

                    workerEvent.WaitOne(10000);
                }
                else
                {
                    workerEvent.WaitOne(100);
                }
            }
        }
Пример #56
0
    public static NetworkRequest Prepare()
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.QUIT_ROOM);

        return(request);
    }
    public static NetworkRequest Prepare()
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.PREDICTION);

        return(request);
    }
 public static void add(short request_id, NetworkRequest request)
 {
     requestTable.Add(request_id, request);
 }
 /* which game the client wants list for
  * 0 - Don't eat me! (no server required)
  * 1 - Cards of the Wild
  * 2 - Running Rhino
  * 3 - Clash of Species
  */
 public static NetworkRequest Prepare(int gameType)
 {
     NetworkRequest request = new NetworkRequest(NetworkCode.WAITLIST);
     request.AddInt32(gameType);
     return request;
 }
    public static NetworkRequest Prepare()
    {
        NetworkRequest request = new NetworkRequest(NetworkCode.WORLD);

        return(request);
    }