The current implementation of S2Connection was created when we didn't have a clear idea about the RM and CEM running as client or server. Now we specified that, it's time to revise the S2Connection class because it is designed to run the RM as a client. Preferably, we should create a communication channel agnostic S2Connection by separating S2Connection logic (like waiting for a reception status message) from the websocket stuff (see #110).