Example #1
0
 public static JsonNIMailConfirmation SendMail(NIServer niserver, string from, string subject, string body, params string[] recipients)
 {
     using (NIMessageClient nimc = new NIMessageClient(niserver))
     {
         return(nimc.SendMail(from, subject, body, recipients));
     }
 }
Example #2
0
        public NIMessageClient(NIServer niserver)
        {
            subscribtions = new List <string>();
            string url = "ws:";

            if (niserver.URL.Contains("//"))
            {
                url += niserver.URL.Substring(niserver.URL.IndexOf("//"));
            }
            else
            {
                url += "//" + niserver.URL;
            }
            url += "/nimessage/v1/websocket";

            connectInterval           = new Timer(10000);
            connectInterval.AutoReset = true;
            connectInterval.Elapsed  += (s, e) =>
            {
                Logger.Log("Reconnect...", this);
                websocket.Connect();
            };

            websocket = new WebSocket(url);
            websocket.SetCredentials(niserver.user, niserver.password, true);
            websocket.Compression = CompressionMethod.None;
            websocket.OnMessage  += (s, e) => OnMessage?.Invoke(s, e);
            websocket.OnError    += (s, e) => Logger.Error(e.Message, this);
            websocket.OnOpen     += (s, e) =>
            {
                Logger.Log("Opened connection", this);
                connectInterval.Stop();
                Connected = true;

                //subscribe to all channels after reconnect
                foreach (string sub in subscribtions)
                {
                    websocket.Send(JsonConvert.SerializeObject(new JsonNISubscribe(sub)));
                }
            };
            websocket.OnClose += (s, e) =>
            {
                Logger.Log("Closed: " + e.Reason, this);
                Connected = false;
                connectInterval.Start();
            };

            websocket.Connect();
        }
Example #3
0
 public NITags(NIServer niserver)
 {
     Init(niserver.URL);
     NIAUTHHEADER = niserver.NIAUTHHEADER;
 }
Example #4
0
 public static JsonNIMailConfirmation SendMail(NIServer niserver, string from, string subject, string body, StringCollection recipients)
 {
     return(SendMail(niserver, from, subject, body, recipients.Cast <string>().ToArray()));
 }