Since session is specific to single user, storing signed in user details in session will not work. You need to store signed in users details in location which accessible from all live session. One of the option is application context. Other maybe some some external persistent storage.
Also, since this is a web based application, which approach is being used "Pull" or "Push" to show incoming chat message?