I am trying to connect via c# and via javascript to an xmpp server (currently ejabberd). Im having a little trouble conceptualizing how the connections will exists.
Your game server would be an XMPP component which your users could directly communicate with, like they can with any other user, server or component in an XMPP system.
Users log into your server (say example.com) in the standard way, then they can start sending messages of whatever type you like directly to your component (game-engine.example.com). Your game engine component exists separately to your XMPP server and the two communicate using the Jabber Component Protocol. Your client can also send directed presence to the component if you want it to be able to initiate communications.
Though, as you're using ejabberd, you could also implement the game engine messaging system as an ejabberd module.
This probably answers your question about a C# XMPP library: https://stackoverflow.com/questions/1166252/net-xmpp-libraries-under-apache-mit-or-ms-pl-licenses