示例#1
0
 private static void SendMessage(WebSocketMessage message)
 {
     _socket.Send(JsonConvert.SerializeObject(message));
 }
示例#2
0
        private static async Task ReceivedMessage(WebSocketMessage message)
        {
            dynamic value;

            try
            {
                value = JsonConvert.DeserializeObject(message.Value);
            }
            catch (Exception ex)
            {
                value = message.Value;
            }

            switch (message.Type)
            {
            case "EliteAPI":
                Log($"Connection established with EliteAPI v{value.Version}", VoiceAttackColor.Green);
                break;

            case "CatchupStart":
                Log($"Catching up on {value} events in this session", VoiceAttackColor.Gray);
                _hasCaughtUp = false;
                break;

            case "CatchupEnd":
                Log($"Caught up with previous events", VoiceAttackColor.Green);
                _hasCaughtUp = true;
                break;

            case "Cargo":
            case "Modules":
            case "Outfitting":
            case "Shipyard":
            case "Status":
            case "NavRoute":
            case "Market":
            case "Backpack":
            case "Event":
                try
                {
                    var eventValue = JsonConvert.DeserializeObject <Event>(message.Value);
                    SetVariables(eventValue.Variables, message.Type);
                    if (_hasCaughtUp)
                    {
                        //Log($"Invoking ((EliteAPI.{eventValue.Name}))", VoiceAttackColor.Pink);
                        var commandName = $"((EliteAPI.{eventValue.Name}))";
                        if (await _proxy.Commands.Exists(commandName))
                        {
                            await _proxy.Commands.Invoke(commandName);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Log($"{ex.GetType().Name}: {ex.Message}");
                }

                break;

            case "Bindings":
                // To convert an XML node contained in string xml into a JSON string
                List <Variable> bindings = BindingsProcessor.SetBindings(value);
                SetVariables(bindings, "Bindings");
                break;
            }
        }