static void Main(string[] args) { loadConfig(); if (!_configDictionary.ContainsKey("username") || !_configDictionary.ContainsKey("password")) { return; } BeamWeb bWeb = new BeamWeb(); Task <BeamUser> res = bWeb.Authenticate(_configDictionary["username"], _configDictionary["password"]); BeamUser user = res.Result; if (user == null) { throw new ArgumentException("Login incorrect?"); } BeamChatInfo chatInfo = bWeb.ChatInfo(user.channel.id).Result; if (chatInfo == null || chatInfo.endpoints.Count == 0) { throw new ArgumentException("Channel Id incorrect?"); } Console.WriteLine("UserID: {0}, ChannelID: {1}", user.id, user.channel.id); BeamChat bChat = new BeamChat(); bChat.SetupWebsocket(chatInfo.endpoints[0]); bChat.SetupCredentials(user.id, user.channel.id, chatInfo.authkey); bChat.Connect(); BeamEventHandler.AddEventHandler(EventHandlerTypes.ChatMessageEvent, (message, underlayingMessage) => { BeamEventChatMessage chatMessage = JsonConvert.DeserializeObject <BeamEventChatMessage>(underlayingMessage); Console.WriteLine("Received Chat message: {0}", chatMessage.data.message.message[0].text); }); Console.ReadKey(); bChat.Disconnect(); /*BeamChat beamChat = new BeamChat(); * * beamChat.SetupCredentials(""); * * beamChat.SetupWebsocket("wss://chat3-dal.beam.pro"); * beamChat.Connect(); * while (true) * { * Thread.Sleep(5000); * }*/ /* * beamChat.websocket_MessageReceived(null, new MessageReceivedEventArgs("{\"type\":\"event\",\"event\":\"WelcomeEvent\",\"data\":{\"server\":\"891c12de-d4f8-4b4f-971f-5e69b6b65075\"}}"));*/ }
/// <summary> /// Processes the messages from beam chat. /// </summary> /// <param name="message">The message.</param> private void ProcessMessage(string message) { var beamMessage = JsonConvert.DeserializeObject <BeamMessage>(message); switch (beamMessage.type) { case "event": var mEvent = JsonConvert.DeserializeObject <BeamEventMessage>(message); BeamEventHandler.HandleEvent(mEvent, message); break; case "reply": var mReply = JsonConvert.DeserializeObject <BeamReplyMessage>(message); if (_dicReplyFunctions.ContainsKey(beamMessage.id)) // Relay message to sender class { _dicReplyFunctions[beamMessage.id](mReply); } break; default: throw new NotImplementedException(beamMessage.type); } }