SendAsync was using InvokeCoreAsync code to send messages. In case of exception InvokeCoreAsync is blocking and returns a task to the user so they can await for the remote call to complete. Any exception thrown is caught and used to fail the task returned to the user. SendAsync does not return a special task to the user so re-using InvokeCore resulted in swallowing exceptions. While SendAsync is fire and forget it actually should throw if the message could not be send and it was not happening. While adding tests it turned out we did not test cases where Invoke/SendAsync/StreamAsync were invoked before starting the connection and this resulted in a NullReferenceException. I also fixed that. |
||
|---|---|---|
| .vscode | ||
| benchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks | ||
| build | ||
| client-ts | ||
| samples | ||
| specs | ||
| src | ||
| test | ||
| .appveyor.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .travis.yml | ||
| CONTRIBUTING.md | ||
| Directory.Build.props | ||
| Directory.Build.targets | ||
| LICENSE.txt | ||
| NuGet.config | ||
| NuGetPackageVerifier.json | ||
| README.md | ||
| SignalR.sln | ||
| build.cmd | ||
| build.sh | ||
| korebuild-lock.txt | ||
| korebuild.json | ||
| run.cmd | ||
| run.ps1 | ||
| run.sh | ||
| version.props | ||
README.md
ASP.NET Core SignalR
ASP.NET Core SignalR is a new library for ASP.NET Core developers that makes it incredibly simple to add real-time web functionality to your applications. What is "real-time web" functionality? It's the ability to have your server-side code push content to the connected clients as it happens, in real-time.
You can watch an introductory presentation here - Introducing ASP.NET Core Sockets.
This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the Home repo.
Packages
You can install the latest released JavaScript client from npm with the following command:
npm install @aspnet/signalr-client
The CI build publishes the latest dev version of the JavaScript client to our dev npm registry as @aspnet/signalr-client. You can install the module as follows:
- Create an .npmrc file with the following line:
@aspnet:registry=https://dotnet.myget.org/f/aspnetcore-ci-dev/npm/ - Run:
npm install @aspnet/signalr-client
Alternatively, if you don't want to create the .npmrc file run the following commands:
npm install msgpack5
npm install @aspnet/signalr-client --registry https://dotnet.myget.org/f/aspnetcore-ci-dev/npm/
Building from source
To run a complete build on command line only, execute build.cmd or build.sh without arguments.
The build requires NodeJS (6.9 or newer) and npm to be installed on the machine.
See developer documentation for more details.