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); } }
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; }
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); } }
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); }