You can decorate your service class with these attributes to use a session based approach.
[InstanceContextMode=InstanceContextMode.PerSession,
SessionMode=SessionMode.Allowed,
ConcurrencyMode=ConcurrencyMode.Single]
However, you will have to send a heartbeat request to your service to keep the session alive when idle every so often. This is not handled automatically.