It can be done fairly easily using Meteor.disconnect(), but you can’t always rely on the client to disconnect itself after a certain amount of idle time. Is there a way for the server to disconnect idle connections after a certain timeout?
I think it’s impossible to do from the server. The server can’t possibly know if the person has been inactive, or just reading something for example.
Besides, if the Server kills the connection without the client’s cooperation, the client will try to reconnect. That’s how Meteor is designed to work.
For your case, you probably want some inactivity timeout on the client, after which you will call disconnect. Then you should provide the user with a little notification, so they can reconnect if they want.