public AddressMessage(byte[] messagePayload)
                : base("addr", messagePayload)
            {
                int startIndex = 0;

                int addressesCount = VarInt.GetInt32(
                    Payload,
                    ref startIndex);

                for (int i = 0; i < addressesCount; i++)
                {
                    NetworkAddresses.Add(
                        NetworkAddress.ParseAddress(
                            Payload, ref startIndex));
                }
            }
        public void SyncRemote(NetworkAddressRegisterService.NetworkAddressRegisterServiceClient serviceClient)
        {
            if (_unRegisterApps.Count <= 0)
            {
                return;
            }
            var networkAddress = new NetworkAddresses();

            networkAddress.Addresses.Add(_unRegisterApps.Keys);
            var mapping = serviceClient.batchRegister(networkAddress);

            if (mapping.AddressIds.Count <= 0)
            {
                return;
            }
            foreach (var id in mapping.AddressIds)
            {
                _unRegisterApps.TryRemove(id.Key, out _);
                _applicationDic.TryAdd(id.Key, id.Value);
            }
        }
示例#3
0
        public async Task HandleClientCommand(object sender, SocketMessageEventArgs model)
        {
            var response = new ClientResponse();

            try
            {
                switch (model.Message.ActionType)
                {
                case ClientMessageType.Ping:
                    response.Type = ClientResponseType.Pong;
                    break;

                case ClientMessageType.GetLSCState:
                    response = new ClientResponse <LightStripStatus>()
                    {
                        Success = true,
                        Message = string.Empty,
                        Type    = ClientResponseType.LSCData,
                        Data    = new LightStripStatus()
                        {
                            Frame             = _lighter.Frame,
                            BoundIp           = _lighter.BoundIp,
                            BoundPort         = _lighter.BoundPort,
                            NetworkInterfaces = NetworkAddresses.GetNetworkAddresses()
                        }
                    };
                    await SendResponse <LightStripStatus>(model.ClientId, response);

                    break;
                }
            }
            catch (Exception ex)
            {
                _ = Task.Run(() => { _logger?.WriteLog(ex.ToString()); });
                response.Success = false;
                response.Message = "Exception";
                response.Type    = ClientResponseType.None;
                await SendResponse(model.ClientId, response);
            }
        }
示例#4
0
 /// <summary>
 /// 登録されているサブネットマスクの配列を取得
 /// </summary>
 /// <returns></returns>
 public string[] GetSubnetMasks()
 {
     return(NetworkAddresses.Select(x => x.SubnetMask).ToArray());
 }
示例#5
0
 /// <summary>
 /// 登録されているIPアドレスの配列を取得
 /// </summary>
 /// <returns></returns>
 public string[] GetIPAddresses()
 {
     return(NetworkAddresses.Select(x => x.IPAddress).ToArray());
 }