This seems to be more an issue of structuring your application.
You can store the deferred object returned by hub.start()
in some global object and access it in your child viewmodel:
window.chatApp = {
hubConnector: $.connection.hub.start()
};
// in your child viewmodel
chatApp.hubConnector.done(function () {
chat.server.addUserToChat(self.currentUsername()).done(function () {
alert('added');
});
});