demo disconnect, duplicate message fix
separate PeerConnection logic to a Session class