/// <summary>
        /// Send message to server asyncronously
        /// </summary>
        /// <param name="message"></param>
        public IWebSocketService Send(string message)
        {
            var byteMessage = new UTF8Encoding(false, true).GetBytes(message);
            var offset      = 0;

            try
            {
                var endOfMessage = false;
                do
                {
                    var remainingBytes = byteMessage.Count() - offset;
                    var sendBytes      = Math.Min(1024, remainingBytes);
                    var segment        = new ArraySegment <byte>(byteMessage, offset, sendBytes);
                    offset      += 1024;
                    endOfMessage = remainingBytes == sendBytes;
                    Client.SendAsync(segment, WebSocketMessageType.Text, endOfMessage, Cts.Token);
                } while (!endOfMessage);
            }
            catch (Exception e)
            {
                SetState(Client.State);
                OnError?.Invoke(e.Message);
            }
            return(this);
        }
        private string pathProcessing()
        {
            string filePath;

#if (DEBUG)
            filePath = "..\\..\\..\\Resources\\MediaData.txt";
#else
            filePath = Directory.GetCurrentDirectory() + "\\data\\MediaData.txt";
            try
            {
                // create the folder if it doesn't exist
                System.IO.Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\data");
                // check if the file already exists
                if (!File.Exists(filePath))
                {
                    var    data       = Properties.Resources.MediaData;
                    byte[] dataInByte = new UTF8Encoding(true).GetBytes(data);
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        stream.Write(dataInByte, 0, dataInByte.Count());
                        stream.Flush();
                    }
                }
            }
            catch (Exception)
            {
            }
#endif
            return(filePath);
        }
示例#3
0
 /// <summary>
 /// Send a message
 /// </summary>
 /// <param name="message">All intra-item, environment and terminal communications are in the form of Message</param>
 /// <param name="cancelToken">Notify method that operation should be canceled</param>
 /// <returns></returns>
 public async Task SendAsync(IMessage message, CancellationToken cancelToken)
 {
     try
     {
         if (WebSocket == null)
         {
             throw new Exception("Websocket is closed!");
         }
         var messageJson  = JsonConvert.SerializeObject(message);
         var byteMessage  = new UTF8Encoding(false, true).GetBytes(messageJson);
         var offset       = 0;
         var endOfMessage = false;
         do
         {
             var remainingBytes = byteMessage.Count() - (offset * 1024);
             var sendBytes      = Math.Min(1024, remainingBytes);
             var segment        = new ArraySegment <byte>(byteMessage, (offset++ *1024), sendBytes);
             endOfMessage = remainingBytes == sendBytes;
             await WebSocket.SendAsync(segment, WebSocketMessageType.Text, endOfMessage, cancelToken);
         } while (!endOfMessage);
     }
     catch (Exception e)
     {
         Exception traverse = e;
         string    error    = "";
         while (traverse != null)
         {
             error   += $"({traverse.Message})";
             traverse = traverse.InnerException;
         }
         Logger.LogError($">> {Terminal?.GetId()} while sending data: {message.GetMessageName()}: {error}");
     }
 }
示例#4
0
 public static void CreateConfigurationFile(string configurationPath, string mockBaseDirectory, string configurationContent)
 {
     Directory.CreateDirectory(mockBaseDirectory);
     using (var file = File.Create(Path.Combine(mockBaseDirectory, configurationPath)))
     {
         var info = new UTF8Encoding(true).GetBytes(configurationContent);
         file.Write(info, 0, info.Count());
     }
 }
        private ConfigurationDefaults GetConfigurationDefaults(string configurationDefaultsContent)
        {
            var configurationDefaultsPath = "NuGetDefaults.config";
            var mockBaseDirectory         = TestFilesystemUtility.CreateRandomTestFolder();

            Directory.CreateDirectory(mockBaseDirectory);

            using (var file = File.Create(Path.Combine(mockBaseDirectory, configurationDefaultsPath)))
            {
                var info = new UTF8Encoding(true).GetBytes(configurationDefaultsContent);
                file.Write(info, 0, info.Count());
            }
            return(new ConfigurationDefaults(mockBaseDirectory, configurationDefaultsPath));
        }