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