예제 #1
0
            private static async Task <byte[]> RunSendTest(Func <WebSocketConnection, Task> producer, WebSocketOptions options)
            {
                using (var factory = new ChannelFactory())
                {
                    var outbound = factory.CreateChannel();
                    var inbound  = factory.CreateChannel();

                    Task executeTask;
                    using (var connection = new WebSocketConnection(inbound, outbound, options))
                    {
                        executeTask = connection.ExecuteAsync(f =>
                        {
                            Assert.False(true, "Did not expect to receive any messages");
                            return(Task.CompletedTask);
                        });
                        await producer(connection).OrTimeout();

                        inbound.CompleteWriter();
                        await executeTask.OrTimeout();
                    }

                    var data = (await outbound.ReadToEndAsync()).ToArray();
                    inbound.CompleteReader();
                    CompleteChannels(outbound);
                    return(data);
                }
            }