Moving up a level
While PersistentConnection
seems very easy to work with, it is the lowest level of abstraction in SignalR. It does provide the perfect abstraction for keeping a connection open between a client and a server, but that's just about all it does provide. Working with different operations is not far from how you would deal with things in a regular socket connection, where you basically have to parse whatever is coming from a client and figure out which operation needs to be performed based on the input. SignalR provides a higher level of abstraction that removes this need and you can write your server-side code in a more intuitive manner. In SignalR, this higher level of abstraction is called a hub.
Basically, a hub represents an abstraction that allows you to write classes with methods that takes different parameters, as you would with any API in your application, and then makes it completely transparent on the client—at least for JavaScript. This resembles a...