Exemple #1
0
        private void ProcessMachineMessage(IMachineMessage msg)
        {
            string content = msg.Message;

            // Sample format "AddMachineMessageSubscriber,127.0.0.1,9000"
            if (content.StartsWith("AddMachineMessageSubscriber"))
            {
                string[] paramList = content.Split(',');
                string   ip        = paramList[1];
                string   port      = paramList[2];

                helper.AddSubscriber(ip, port);
            }
            else // Forward the message
            {
                helper.PublishMessageToSubscribers(MessageType.MachineMessage, content);
            }
        }
Exemple #2
0
        static void InitBrokerHub(IMachineMessage msg)
        {
            if (InitIncomplete)
            {
                return;
            }

            InitIncomplete = true;
            if (msg.Message == "Start_ICAN.SIC")
            {
                var vitalPlugins = brokerHub?.GetVitalPlugins();

                brokerHub?.Hub.Unsubscribe <IMachineMessage>(InitBrokerHub);
                brokerHub?.Stop();
                brokerHub?.Dispose();

                bool firstInstanceInEcosystem = brokerHub == null;

                brokerHub = new BrokerHub(new List <string> {
                    "ChatInterface"
                }, firstInstanceInEcosystem);
                brokerHub.Hub.Subscribe <IMachineMessage>(InitBrokerHub);
                brokerHub.Start();


                brokerHub.Hub.Publish <Log>(new Log(LogType.Info, "'Start_ICAN.SIC' machine message for bootstrap"));


                // AddAndHook vital plugins from past brokerHub

                if (vitalPlugins != null)
                {
                    foreach (var plugin in vitalPlugins)
                    {
                        brokerHub.AddAndHook(plugin);
                    }
                }
            }
            InitIncomplete = false;
        }
Exemple #3
0
        private void MakeMachineMessageUserFriendly(IMachineMessage message)
        {
            IUserFriendlyMachineMessage userFriendlyMessage;

            ChatResult result = null;

            if (message.Message != null)
            {
                if (currentUser == null)
                {
                    result = bot?.Chat(message.Message);
                }
                else
                {
                    result = bot?.Chat(new ChatRequest(message.Message, currentUser));
                }
            }

            if (result != null)
            {
                userFriendlyMessage = new UserFriendlyMachineMessage(result.BotMessage);
                hub.Publish <IUserFriendlyMachineMessage>(userFriendlyMessage);
            }
        }
Exemple #4
0
 private static void PrintMachineMessage(IMachineMessage message)
 {
     Console.WriteLine("[INFO] IMachineMessage: " + message.Message);
 }
 private void AddMachineMessage(IMachineMessage machineMessage)
 {
     helper.AddMachineMessage(machineMessage.Message);
 }
 public void PrintMachineMessageResponse(IMachineMessage message)
 {
     Console.WriteLine("[Machine Message] " + message.Message);
     SetMessageText(message.Message);
 }