Ejemplo n.º 1
0
 /// <summary>
 /// Processus background qui traite les messages à l'infini
 /// </summary>
 private void BackgroundThradProcess()
 {
     while (true)
     {
         if (this.terminate)
         {
             break;
         }
         this.mre.Reset();
         if (this.elementsDiffusion.Count >= 0)
         {
             ElementDiffusion ed = null;
             if (this.elementsDiffusion.TryDequeue(out ed))
             {
                 this.DiffuserMessage(ed);
             }
         }
         else if (this.elementsFTP.Count >= 0)
         {
             ElementFTP element = null;
             if (this.elementsFTP.TryDequeue(out element))
             {
                 this.DiffuserFTP(element);
             }
         }
         else
         {
             this.mre.WaitOne(300000);
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Empile un message afin de le difuser avec signalr
        /// </summary>
        /// <param name="type"></param>
        /// <param name="message"></param>
        public void DiffuserMessageBluetooth(Chat.ChronoSignalR.TypeMessage type, string message)
        {
            ElementDiffusion ed = new ElementDiffusion()
            {
                TypeMessage = type, Message = message
            };

            ed.SignalRHub    = ParamCommuns.Instance.SignalRHub;
            ed.SignalRServer = ParamCommuns.Instance.SignalRServer;
            this.elementsDiffusion.Enqueue(ed);
            this.mre.Set();
            //if (this.pret.HasValue && this.pret.Value)
            //{
            //    ElementDiffusion ed = new ElementDiffusion() { TypeMessage = type, Message = message };
            //    ed.SignalRHub = ParamCommuns.Instance.SignalRHub;
            //    ed.SignalRServer = ParamCommuns.Instance.SignalRServer;
            //    Messenger.Default.Send(ed);
            //    return;
            //}
            //else if (this.pret.HasValue && ! this.pret.Value)
            //{
            //    lock (this.boquant)
            //    {
            //        if (this.pret.HasValue && this.pret.Value)
            //        {
            //            ElementDiffusion ed = new ElementDiffusion() { TypeMessage = type, Message = message };
            //            ed.SignalRHub = ParamCommuns.Instance.SignalRHub;
            //            ed.SignalRServer = ParamCommuns.Instance.SignalRServer;
            //            Messenger.Default.Send(ed);
            //        }
            //        else {
            //           this.pile.Push(new ElementDiffusion() { TypeMessage = type, Message = message });
            //        }
            //    }

            //    return;
            //}

            //this.pile.Push(new ElementDiffusion() { TypeMessage = type, Message = message });
        }
Ejemplo n.º 3
0
        //BluetoothClient globalClient = null;
        //Stream globalStream = null;

        private void DiffuserMessage(ElementDiffusion ed)
        {
            try
            {
                using (BluetoothClient bluetoothClient = new BluetoothClient())
                {
                    var ep = new BluetoothEndPoint(this.dev.DeviceInfo.DeviceAddress, _serviceClassId);

                    bluetoothClient.Connect(ep);

                    using (var bluetoothStream = bluetoothClient.GetStream())
                    {
                        using (MemoryStream ms = new MemoryStream())
                        {
                            this.ser.WriteObject(ms, ed);
                            string s = System.Text.UTF8Encoding.UTF8.GetString(ms.GetBuffer());
                            ms.Seek(0, SeekOrigin.Begin);
                            this.Ecrivain(s);
                            int    longueur     = (int)ms.Length;
                            byte[] bx           = BitConverter.GetBytes(longueur);
                            int    longueurTest = bx.Length;
                            bluetoothStream.Write(bx, 0, 4);
                            byte[] sender = ms.GetBuffer();
                            int    depart = 0;
                            while (longueur > 0)
                            {
                                if (longueur >= 1024)
                                {
                                    bluetoothStream.Write(sender, depart, 1024);
                                    bluetoothStream.Flush();
                                    depart   += 1024;
                                    longueur -= 1024;
                                }
                                else
                                {
                                    bluetoothStream.Write(sender, depart, longueur);
                                    bluetoothStream.Flush();
                                    longueur = 0;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                this.Ecrivain("ERREUR --------------------------");
                this.Ecrivain(e.ToString());
            }
            ////////lock (this.boquant)
            ////////{
            ////////    try
            ////////    {
            ////////        if (this.globalClient == null)
            ////////        {
            ////////            this.globalClient = new BluetoothClient();
            ////////            var ep = new BluetoothEndPoint(this.dev.DeviceInfo.DeviceAddress, _serviceClassId);
            ////////            this.globalClient.Connect(ep);
            ////////            this.globalStream = this.globalClient.GetStream();

            ////////        }

            ////////        using (MemoryStream ms = new MemoryStream())
            ////////        {
            ////////            this.ser.WriteObject(ms, ed);
            ////////            int longueur = (int)ms.Length;
            ////////            byte[] bx = BitConverter.GetBytes(longueur);
            ////////            int longueurTest = bx.Length;
            ////////            globalStream.Write(bx, 0, 4);
            ////////            byte[] sender = ms.GetBuffer();
            ////////            int depart = 0;
            ////////            while (longueur > 0)
            ////////            {
            ////////                if (longueur >= 1024)
            ////////                {
            ////////                    globalStream.Write(sender, depart, 1024);
            ////////                    globalStream.Flush();
            ////////                    depart += 1024;
            ////////                    longueur -= 1024;
            ////////                }
            ////////                else
            ////////                {
            ////////                    globalStream.Write(sender, depart, longueur);
            ////////                    globalStream.Flush();
            ////////                    longueur = 0;
            ////////                }
            ////////            }
            ////////            //globalStream.Write(ms.GetBuffer(), 0, longueur);
            ////////            //globalStream.Flush();
            ////////        }


            ////////        //using (BluetoothClient bluetoothClient = new BluetoothClient())
            ////////        //{

            ////////        //    var bep = new BluetoothEndPoint(this.dev.DeviceInfo.DeviceAddress, _serviceClassId);


            ////////        //    // connecting
            ////////        //    bluetoothClient.Connect(bep);



            ////////        //    using (var bluetoothStream = bluetoothClient.GetStream())
            ////////        //    {
            ////////        //        using (MemoryStream ms = new MemoryStream())
            ////////        //        {
            ////////        //            this.ser.WriteObject(ms, ed);

            ////////        //            var buffer = ms.GetBuffer();
            ////////        //            bluetoothStream.Write(buffer, 0, buffer.Length);
            ////////        //            bluetoothStream.Flush();
            ////////        //            bluetoothStream.Close();
            ////////        //        }
            ////////        //    }
            ////////        //}
            ////////    }
            ////////    catch (Exception e)
            ////////    {
            ////////        Console.WriteLine("Erreur de messagerie");
            ////////    }
            ////////}
        }