/// <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); }
/// <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}"); } }
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)); }