diff options
author | Kenneth Pouncey <kjpou@pt.lu> | 2019-12-09 15:32:17 +0300 |
---|---|---|
committer | Alexander Köplinger <alex.koeplinger@outlook.com> | 2019-12-09 15:32:17 +0300 |
commit | 1462208991862fa795d36ec5df52eab938a4242e (patch) | |
tree | 0d6bb5b621bcb0936c0971c54a18489eec2d46b1 /mcs | |
parent | ed6b8024b0eb933d78ecc2e54bc8a798f868cf7e (diff) |
[wasm][bcl][websockets] Add WebSocket support. (#18062)
Add the ability to initialize a `WebAssembly.Net.WebSockets::ClientWebSocket` from `System.Net.WebSockets.ClientWebSocket`.
`System.Net.WebSockets.ClientWebSocket` will delegate all calls to the WebAssembly ClientWebSocket.
- Add support for marshaling `Uri` class correctly. This was a cause of failures.
- Add bindings tests for `Uri` marhaling.
Diffstat (limited to 'mcs')
-rw-r--r-- | mcs/class/System/Assembly/AssemblyInfo.cs | 4 | ||||
-rw-r--r-- | mcs/class/System/Makefile | 4 | ||||
-rw-r--r-- | mcs/class/System/System.Net.WebSockets/WebSocketHandle.wasm.cs | 108 | ||||
-rw-r--r-- | mcs/class/System/System.csproj | 22 | ||||
-rw-r--r-- | mcs/class/System/wasm_System.dll.exclude.sources | 1 | ||||
-rw-r--r-- | mcs/class/System/wasm_System.dll.sources | 3 |
6 files changed, 140 insertions, 2 deletions
diff --git a/mcs/class/System/Assembly/AssemblyInfo.cs b/mcs/class/System/Assembly/AssemblyInfo.cs index bfe1e6a7b90..15e072796c7 100644 --- a/mcs/class/System/Assembly/AssemblyInfo.cs +++ b/mcs/class/System/Assembly/AssemblyInfo.cs @@ -90,6 +90,10 @@ using System.Runtime.InteropServices; [assembly: InternalsVisibleTo ("Mono.Android, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")] #endif +#if WASM +[assembly: InternalsVisibleTo ("WebAssembly.Net.WebSockets, PublicKey=00240000048000009400000006020000002400005253413100040000010001004b86c4cb78549b34bab61a3b1800e23bfeb5b3ec390074041536a7e3cbd97f5f04cf0f857155a8928eaa29ebfd11cfbbad3ba70efea7bda3226c6a8d370a4cd303f714486b6ebc225985a638471e6ef571cc92a4613c00b8fa65d61ccee0cbe5f36330c9a01f4183559f1bef24cc2917c6d913e3a541333a1d05d9bed22b38cb")] +#endif + [assembly: TypeForwardedTo (typeof (System.Collections.Generic.Stack<>))] [assembly: TypeForwardedTo (typeof (System.Collections.Generic.Queue<>))] [assembly: TypeForwardedTo (typeof (System.IO.Enumeration.FileSystemName))] diff --git a/mcs/class/System/Makefile b/mcs/class/System/Makefile index f3252e4cc32..ed30dfc6fcb 100644 --- a/mcs/class/System/Makefile +++ b/mcs/class/System/Makefile @@ -116,6 +116,10 @@ API_BIN_REFS += System.Configuration LIB_MCS_FLAGS += -d:CONFIGURATION_DEP endif +ifeq (wasm,$(PROFILE)) +API_BIN_REFS += WebAssembly.Net.WebSockets +endif + EXTRA_DISTFILES = \ Test/test-config-file \ Test/System.Security.Cryptography.X509Certificates/pkits/Makefile \ diff --git a/mcs/class/System/System.Net.WebSockets/WebSocketHandle.wasm.cs b/mcs/class/System/System.Net.WebSockets/WebSocketHandle.wasm.cs new file mode 100644 index 00000000000..5219654c97c --- /dev/null +++ b/mcs/class/System/System.Net.WebSockets/WebSocketHandle.wasm.cs @@ -0,0 +1,108 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Net.Security; +using System.Net.Sockets; +using System.Runtime.ExceptionServices; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace System.Net.WebSockets +{ + internal sealed class WebSocketHandle + { + private WebSocketState _state = WebSocketState.Connecting; + private WebAssembly.Net.WebSockets.ClientWebSocket _webSocket; + + public static WebSocketHandle Create() => new WebSocketHandle(); + + public static bool IsValid(WebSocketHandle handle) => handle != null; + + public WebSocketCloseStatus? CloseStatus => _webSocket?.CloseStatus; + + public string CloseStatusDescription => _webSocket?.CloseStatusDescription; + + public WebSocketState State => _webSocket?.State ?? _state; + + public string SubProtocol => _webSocket?.SubProtocol; + + public static void CheckPlatformSupport() { /* nop */ } + + public void Dispose() + { + _state = WebSocketState.Closed; + _webSocket?.Dispose(); + } + + public void Abort() + { + _webSocket?.Abort(); + } + + public Task SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, CancellationToken cancellationToken) => + _webSocket.SendAsync(buffer, messageType, endOfMessage, cancellationToken); + + public ValueTask SendAsync(ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, CancellationToken cancellationToken) => + _webSocket.SendAsync(buffer, messageType, endOfMessage, cancellationToken); + + public Task<WebSocketReceiveResult> ReceiveAsync(ArraySegment<byte> buffer, CancellationToken cancellationToken) => + _webSocket.ReceiveAsync(buffer, cancellationToken); + + public ValueTask<ValueWebSocketReceiveResult> ReceiveAsync(Memory<byte> buffer, CancellationToken cancellationToken) => + _webSocket.ReceiveAsync(buffer, cancellationToken); + + public Task CloseAsync(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken cancellationToken) => + _webSocket.CloseAsync(closeStatus, statusDescription, cancellationToken); + + public Task CloseOutputAsync(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken cancellationToken) => + _webSocket.CloseOutputAsync(closeStatus, statusDescription, cancellationToken); + + public async Task ConnectAsyncCore(Uri uri, CancellationToken cancellationToken, ClientWebSocketOptions options) + { + // TODO #14480 : Not currently implemented, or explicitly ignored: + // - ClientWebSocketOptions.UseDefaultCredentials + // - ClientWebSocketOptions.Credentials + // - ClientWebSocketOptions.Proxy + // - ClientWebSocketOptions._sendBufferSize + // throw new PlatformNotSupportedException (); + // Establish connection to the server + CancellationTokenRegistration registration = cancellationToken.Register(s => ((WebSocketHandle)s).Abort(), this); + try + { + _webSocket = new WebAssembly.Net.WebSockets.ClientWebSocket ();//(options); + foreach (var t in options.RequestedSubProtocols) { + _webSocket.Options.AddSubProtocol (t); + } + + await _webSocket.ConnectAsync (uri, cancellationToken); + + } + catch (Exception exc) + { + if (_state < WebSocketState.Closed) + { + _state = WebSocketState.Closed; + } + + Abort(); + + if (exc is WebSocketException) + { + throw; + } + throw new WebSocketException(SR.net_webstatus_ConnectFailure, exc); + } + finally + { + registration.Dispose(); + } + } + } +}
\ No newline at end of file diff --git a/mcs/class/System/System.csproj b/mcs/class/System/System.csproj index 935e1d5d0c5..011086d348a 100644 --- a/mcs/class/System/System.csproj +++ b/mcs/class/System/System.csproj @@ -461,7 +461,6 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.WebClient\src\System\Net\WebClient.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\ClientWebSocket.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\ClientWebSocketOptions.cs" /> - <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.WebSocketProtocol\src\System\Net\WebSockets\ManagedWebSocket.netstandard.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets\src\System\Net\WebSockets\ValueWebSocketReceiveResult.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets\src\System\Net\WebSockets\WebSocket.cs" /> @@ -1059,6 +1058,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -1218,6 +1218,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPClient.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPListener.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\UDPClient.cs" /> @@ -1363,6 +1364,7 @@ <Compile Include="System.Net.NetworkInformation\UnixTcpStatistics.cs" /> <Compile Include="System.Net.NetworkInformation\UnixUdpStatistics.cs" /> <Compile Include="System.Net.Security\SslStream.cs" /> + <Compile Include="System.Net.WebSockets\WebSocketHandle.wasm.cs" /> <Compile Include="System.Net\AuthenticationManager.cs" /> <Compile Include="System.Net\BufferedReadStream.cs" /> <Compile Include="System.Net\ChunkedInputStream.cs" /> @@ -1439,6 +1441,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -1568,6 +1571,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPClient.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPListener.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\UDPClient.cs" /> @@ -1834,6 +1838,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Security.Cryptography.Encoding\src\Internal\Cryptography\OidLookup.Windows.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> @@ -2307,6 +2312,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -2805,6 +2811,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -3321,6 +3328,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -3682,6 +3690,7 @@ <Compile Include="..\..\..\external\corefx\src\Common\src\System\Net\Security\Unix\SafeFreeNegoCredentials.cs" /> <Compile Include="..\..\..\external\corefx\src\System.IO.FileSystem.Watcher\src\System\IO\FileSystemWatcher.UnknownUnix.cs" /> <Compile Include="..\..\..\external\corefx\src\System.IO.FileSystem.Watcher\src\System\IO\FileSystemWatcher.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\Mono.Security\Mono.Security.Cryptography\PKCS8.cs" /> <Compile Include="..\Mono.Security\Mono.Security.X509.Extensions\AuthorityKeyIdentifierExtension.cs" /> <Compile Include="..\Mono.Security\Mono.Security.X509.Extensions\BasicConstraintsExtension.cs" /> @@ -3801,6 +3810,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPClient.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPListener.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\UDPClient.cs" /> @@ -3939,6 +3949,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPClient.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\TCPListener.cs" /> <Compile Include="..\referencesource\System\net\System\Net\Sockets\UDPClient.cs" /> @@ -4104,6 +4115,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Security.Cryptography.Encoding\src\Internal\Cryptography\OidLookup.Windows.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> @@ -4224,6 +4236,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -4366,6 +4379,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -4508,6 +4522,7 @@ <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslClientAuthenticationOptions.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Net.Security\src\System\Net\Security\SslServerAuthenticationOptions.cs" /> + <Compile Include="..\..\..\external\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Managed.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunner.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\CompiledRegexRunnerFactory.cs" /> <Compile Include="..\..\..\external\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexCompiler.cs" /> @@ -5078,6 +5093,11 @@ <HintPath>./../../../external/binary-reference-assemblies/build/monowasm/System.Numerics.dll</HintPath> <Private>False</Private> </Reference> + <Reference Include="./../../../external/binary-reference-assemblies/build/monowasm/WebAssembly.Net.WebSockets.dll"> + <SpecificVersion>False</SpecificVersion> + <HintPath>./../../../external/binary-reference-assemblies/build/monowasm/WebAssembly.Net.WebSockets.dll</HintPath> + <Private>False</Private> + </Reference> <ProjectReference Include="../Mono.Security/Mono.Security.csproj"> <Aliases>MonoSecurity</Aliases> </ProjectReference> diff --git a/mcs/class/System/wasm_System.dll.exclude.sources b/mcs/class/System/wasm_System.dll.exclude.sources index a6a19c8bc99..adb10a980de 100644 --- a/mcs/class/System/wasm_System.dll.exclude.sources +++ b/mcs/class/System/wasm_System.dll.exclude.sources @@ -1,3 +1,4 @@ System.IO/FileSystemWatcher.cs ../../../external/corefx/src/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.UnknownUnix.cs ../../../external/corefx/src/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.cs +../../../external/corefx/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs
\ No newline at end of file diff --git a/mcs/class/System/wasm_System.dll.sources b/mcs/class/System/wasm_System.dll.sources index a6748349a0b..b5ce06f0169 100644 --- a/mcs/class/System/wasm_System.dll.sources +++ b/mcs/class/System/wasm_System.dll.sources @@ -1,2 +1,3 @@ #include mobile_System.dll.sources -#include fsw.pns.sources
\ No newline at end of file +#include fsw.pns.sources +System.Net.WebSockets/WebSocketHandle.wasm.cs |