Having had experience of this.. SignalR Hub classes are transient meaning that Hub instances are created each time a client creates a connection with SignalR. So the Hub class is not the place to put the Tweetinvi code.
As you are only allowed to have one (filtered) streaming instance open to the API at any time, you need to ensure that only one instance of the stream is created in the lifetime of the application. A quick and dirty way of getting this working is to make up a static class where you put all of your Tweetinvi code and put all of the connecting to Twitter code into a static method and then use Task.Factory.StartNew in your Global.asax file to start up the work:
// Create Task for the stream of tweets
Task.Factory.StartNew(() => TwitterStream.Setup());
Full code here: https://github.com/adaam2/TwitterTrendingMap/blob/master/TwitterLogic/TwitterStream.cs
n.b. there's probably a better, cleaner way of doing this.
As you are only allowed to have one (filtered) streaming instance open to the API at any time, you need to ensure that only one instance of the stream is created in the lifetime of the application. A quick and dirty way of getting this working is to make up a static class where you put all of your Tweetinvi code and put all of the connecting to Twitter code into a static method and then use Task.Factory.StartNew in your Global.asax file to start up the work:
// Create Task for the stream of tweets
Task.Factory.StartNew(() => TwitterStream.Setup());
Full code here: https://github.com/adaam2/TwitterTrendingMap/blob/master/TwitterLogic/TwitterStream.cs
n.b. there's probably a better, cleaner way of doing this.