예제 #1
0
        private async Task WriteHeadAsync()
        {
            string head = string.Format("HTTP/1.1 {0} {1}\r\n{2}\r\n",
                                        StatusCode, HttpStatusCodes.StatusCodes[StatusCode], Header.ToString());

            var headBytes = Encoding.UTF8.GetBytes(head);
            await ResponseStream.WriteAsync(Encoding.UTF8.GetBytes(head), 0, headBytes.Length);

            ResponseStream.Flush();
            isHeaderWritten = true;
        }
예제 #2
0
        public async Task WriteAsync(byte[] bytes)
        {
            if (!isHeaderWritten)
            {
                await WriteHeadAsync();
            }

            if (bytes != null)
            {
                await ResponseStream.WriteAsync(bytes, 0, bytes.Length);
            }
        }
예제 #3
0
        public async Task WriteAsync(string str)
        {
            if (!isHeaderWritten)
            {
                await WriteHeadAsync();
            }

            if (!string.IsNullOrEmpty(str))
            {
                var bytes = Encoding.UTF8.GetBytes(str);
                await ResponseStream.WriteAsync(bytes, 0, bytes.Length);
            }

            await ResponseStream.FlushAsync();
        }
예제 #4
0
        public IPC()
        {
            Task.Run(async() =>
            {
                await foreach (var m in responseChannel.Reader.ReadAllAsync())
                {
                    // Serialize the write
                    await(ResponseStream?.WriteAsync(m) ?? Task.CompletedTask);
                }
            }, cts.Token);

            Task.Run(async() =>
            {
                await foreach (var m in browserResponseChannel.Reader.ReadAllAsync())
                {
                    // Serialize the write
                    await(BrowserResponseStream?.WriteAsync(m) ?? Task.CompletedTask);
                }
            }, cts.Token);
        }
 /// <inheritdoc />
 public Task UpdateAsync(EventMessage obj)
 {
     return(ResponseStream.WriteAsync(obj));
 }
예제 #6
0
 public async void SizeChanged(Size size)
 {
     await(ResponseStream?.WriteAsync(new WebMessageResponse {
         Response = "size:" + JsonSerializer.Serialize(size)
     }) ?? Task.CompletedTask);
 }
예제 #7
0
 public async void LocationChanged(Point point)
 {
     await(ResponseStream?.WriteAsync(new WebMessageResponse {
         Response = "location:" + JsonSerializer.Serialize(point)
     }) ?? Task.CompletedTask);
 }