public void Stop() { try { if (xmppServer != null) { xmppServer.StopListen(); xmppServer.Dispose(); xmppServer = null; } if (host != null) { host.Close(); host = null; } if (cleaner != null) { cleaner.Stop(); } } catch (Exception ex) { log.Error("Error while stopping the service", ex); } }
protected override XElement ProcessRequest(XmppServer server, Jid jid, NameValueCollection values) { var to = values["to"]; var from = values["from"]; var command = values["command"]; if (string.IsNullOrEmpty(from) || string.IsNullOrEmpty(to) || string.IsNullOrEmpty(command)) { throw new ArgumentException("argument count mismatch"); } var jidTo = GetJid(to); var iq = new IQ(IqType.set, GetJid(from), jidTo) { Query = new Command(command) }; var session = server.SessionManager.GetSession(jidTo); if (session != null) { var sender = (IXmppSender)server.GetService(typeof(IXmppSender)); sender.SendTo(session, iq); } return(new XElement("ok")); }
public SignalRXmppConnection(string connectionId, XmppServer xmppServer) { Id = connectionId; _xmppServer = xmppServer; IdleWatcher.StopWatch(Id); IdleWatcher.StartWatch(Id, _inactivityPeriod, IdleTimeout); _log.DebugFormat("Create new SignalR connection Id = {0}.", Id); }
public void Start() { xmppServer = new XmppServer(); JabberConfiguration.Configure(xmppServer); xmppServer.StartListen(); host = new ServiceHost(new JabberService(xmppServer)); host.Open(); }
private static void ConfigureStorages(JabberConfigurationSection jabberSection, XmppServer server) { foreach (JabberConfigurationElement se in jabberSection.Storages) { var storage = Activator.CreateInstance(Type.GetType(se.TypeName, true)); if (storage is IConfigurable) ((IConfigurable)storage).Configure(se.GetProperties()); server.StorageManager.SetStorage(se.Name, storage); } }
/// <summary> /// 注册 Xmpp相关配置 /// </summary> public static void Launch() { Console.WriteLine("Starting xmpp service ......"); //启动xmpp服务 XmppServer.GetInstance().StartUp(); Console.WriteLine("xmpp service started"); //启动诊断 //TraceManager.StartTrace(); }
private static void ConfigureListeners(JabberConfigurationSection jabberSection, XmppServer server) { foreach (JabberConfigurationElement le in jabberSection.Listeners) { var listener = (IXmppListener)Activator.CreateInstance(Type.GetType(le.TypeName, true)); listener.Name = le.Name; listener.Configure(le.GetProperties()); server.AddXmppListener(listener); } }
public static void Configure(XmppServer server, string configFile) { XmlConfigurator.Configure(); var jabberSection = GetSection(configFile); ConfigureListeners(jabberSection, server); ConfigureStorages(jabberSection, server); ConfigureServices(jabberSection, server); }
protected override XElement ProcessRequest(XmppServer server, Jid jid, NameValueCollection values) { var user = values["user"]; if (!string.IsNullOrEmpty(user)) { jid = GetJid(user); } var session = server.SessionManager.GetSession(jid); return(new XElement("availible", session != null && session.Available)); }
public void Stop() { if (xmppServer != null) { xmppServer.StopListen(); xmppServer = null; } if (host != null) { host.Close(); host = null; } }
public XmppSeverConnection(XmppServer server, Socket sock) : this() { this.m_SessionId = SessionID.CreateNewId(); this.strClientIP = ((IPEndPoint)sock.RemoteEndPoint).Address.ToString(); m_Sock = sock; m_Server = server; m_Sock.BeginReceive(buffer, 0, BUFFERSIZE, 0, new AsyncCallback(ReadCallback), null); m_AuthenticatedClient = false; }
private static void ConfigureServices(JabberConfigurationSection jabberSection, XmppServer server) { foreach (ServiceConfigurationElement se in jabberSection.Services) { var service = (IXmppService)Activator.CreateInstance(Type.GetType(se.TypeName, true)); service.Jid = new Jid(Stringprep.NamePrep(se.Jid)); service.Name = se.Name; if (!string.IsNullOrEmpty(se.Parent)) { service.ParentService = server.GetXmppService(new Jid(Stringprep.NamePrep(se.Parent))); } service.Configure(se.GetProperties()); server.RegisterXmppService(service); } }
protected override XElement ProcessRequest(XmppServer server, Jid jid, NameValueCollection values) { var to = values["to"]; var subject = values["subject"]; var text = values["message"]; if (!string.IsNullOrEmpty(to) && !string.IsNullOrEmpty(text)) { var jidTo = GetJid(to); text = ModifyJabberNotification(text); var message = new Message( jidTo, new Jid(CoreContext.TenantManager.GetCurrentTenant().TenantDomain), MessageType.headline, text, subject ?? "") { XDelay = new Delay() { Stamp = DateTime.UtcNow } }; var session = server.SessionManager.GetSession(jid); if (session != null) { var sender = (IXmppSender)server.GetService(typeof(IXmppSender)); sender.SendTo(session, message); } else { server.StorageManager.OfflineStorage.SaveOfflineMessages(message); } var archive = server.StorageManager.GetStorage <DbMessageArchive>("archive"); if (archive != null) { archive.SaveMessages(message); } } else { throw new ArgumentException("argument count mismatch"); } return(new XElement("ok")); }
public Main() { InitializeComponent(); outputList = new Dictionary<string, RichTextBox>(); ///ÅäÖÃÏêϸ¼ÓÔØ ConfigManager.Load();//gt server = new XmppServer(); //server.ClientStart = ClientStartHandler;//gt //server.ClientEnd = ClientEndHandler;//gt //server.Output = OutputHandler;//gt this.btnStart.Enabled = true; this.btnStop.Enabled = false; }
/// <summary> /// Starts services. /// </summary> private void StartServices() { var config = ApiConfig.Current; ApiConfig.Current.Logger = Log.Logger; // Start the API server. _apiServer = new ApiServer(ApiConfig.Current.Port) { Logger = Log.Logger, LogHttpRequests = ApiConfig.Current.LogHttpRequests, Log404 = ApiConfig.Current.Log404, AlternativeRoute = "/fortnite-gameapi" }; try { _apiServer.Start(); Log.Information("API server started on port " + _apiServer.Port); } catch (HttpListenerException) when(_apiServer.Port == 80) { Log.Fatal("You must run this program as an administrator to use port 80!"); return; } // Start the XMPP service. _xmppServer = new XmppServer(ApiConfig.Current.XmppPort) { Logger = Log.Logger }; _xmppServer.Start(); Log.Information("XMPP server started on port " + _xmppServer.Port); // Start the matchmaker server. _matchmakerServer = new MatchmakerServer(ApiConfig.Current.MatchmakerPort) { Logger = Log.Logger }; _matchmakerServer.Start(); Log.Information("Matchmaker server started on port " + _matchmakerServer.Port); // TODO: Start the game server. }
public static void Configure(XmppServer server, string configFile) { XmlConfigurator.Configure(); var jabberSection = GetSection(configFile); ConfigureListeners(jabberSection, server); ConfigureStorages(jabberSection, server); ConfigureServices(jabberSection, server); var replaceSetting = ConfigurationManager.AppSettings["jabber.replace-domain"]; if (!string.IsNullOrEmpty(replaceSetting)) { ReplaceDomain = true; var q = replaceSetting.Split(new []{"->"}, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim().ToLowerInvariant()); ReplaceFromDomain = q.ElementAt(0); ReplaceToDomain = q.ElementAt(1); } }
public static void Configure(XmppServer server, string configFile) { var jabberSection = GetSection(configFile); ConfigureListeners(jabberSection, server); ConfigureStorages(jabberSection, server); ConfigureServices(jabberSection, server); var replaceSetting = ConfigurationManager.AppSettings["jabber.replace-domain"]; if (!string.IsNullOrEmpty(replaceSetting)) { ReplaceDomain = true; var q = replaceSetting.Split(new [] { "->" }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim().ToLowerInvariant()); ReplaceFromDomain = q.ElementAt(0); ReplaceToDomain = q.ElementAt(1); } }
public static void Configure(XmppServer server) { Configure(server, null); }
public void AddXmppConnection(string connectionId, XmppServer xmppServer) { var connection = new SignalRXmppConnection(connectionId, xmppServer); base.AddNewXmppConnection(connection); }
protected override XElement ProcessRequest(XmppServer server, Jid jid, NameValueCollection values) { return(new XElement("unread", server.StorageManager.OfflineStorage.GetOfflineMessagesCount(jid))); }
protected abstract XElement ProcessRequest(XmppServer server, Jid username, NameValueCollection values);
public JabberService(XmppServer xmppServer) { this.xmppServer = xmppServer; CurrentXmppServer = xmppServer; }
public JabberService(XmppServer xmppServer) { _xmppServer = xmppServer; _reverseJabberServiceClient = new ReverseJabberServiceClient(); }
protected override XElement ProcessRequest(XmppServer server, Jid jid, NameValueCollection values) { return(new XElement("token", server.AuthManager.GetUserToken(jid.User))); }
public JabberService(XmppServer xmppServer) { _xmppServer = xmppServer; signalrServiceClient = new SignalrServiceClient("chat"); }
private static void ConfigureStorages(JabberConfigurationSection jabberSection, XmppServer server) { foreach (JabberConfigurationElement se in jabberSection.Storages) { var storage = Activator.CreateInstance(Type.GetType(se.TypeName, true)); if (storage is IConfigurable) { ((IConfigurable)storage).Configure(se.GetProperties()); } server.StorageManager.SetStorage(se.Name, storage); } }