QuickStart Persistent Connections

David Fowler edited this page May 30, 2013 · 30 revisions

QuickStart (Persistent Connections)

This quickstart was designed to get you up and running quickly with a working SignalR sample using a PersistentConnection. For more details, See the documentation.


Go to NuGet and install the SignalR package into a WebApplication:

Install-Package Microsoft.AspNet.SignalR


Create a class that derives from PersistentConnection:

    using System.Threading.Tasks;
    using Microsoft.AspNet.SignalR;
    public class MyConnection : PersistentConnection 
        protected override Task OnReceived(IRequest request, string connectionId, string data) 
            // Broadcast data to all clients
            return Connection.Broadcast(data);

Setup Routing

Make a route for your connection:


    using System;
    using System.Web.Routing;

    public class Global : System.Web.HttpApplication 
        protected void Application_Start(object sender, EventArgs e) 
            RouteTable.Routes.MapConnection<MyConnection>("echo", "/echo");

If you are setting up other routes, the SignalR mapping needs to be done before the other ones.


Javascript + HTML

    <script src="http://code.jquery.com/jquery-1.7.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery.signalR-1.1.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(function () {
        var connection = $.connection('/echo');

        connection.received(function (data) {
            $('#messages').append('<li>' + data + '</li>');
        connection.start().done(function() { 
            $("#broadcast").click(function () {


    <input type="text" id="msg" />
    <input type="button" id="broadcast" value="broadcast" />

    <ul id="messages">


If you want to use the .NET client, then install the package.

Install-Package Microsoft.AspNet.SignalR.Client -pre
public class Program
    public static void Main(string[] args)
        // Connect to the service
        var connection = new Connection("http://localhost/mysite/echo");

        // Print the message when it comes in
        connection.Received += data => Console.WriteLine(data);

        // Start the connection

        string line = null;
        while((line = Console.ReadLine()) != null)
            // Send a message to the server
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.