public ServerSideConnection(ITransport<StompFrame> transport, ServerData serverData)
		{
			_connectionNumber = Interlocked.Increment(ref _connectionCount);
			_logMessagePrefix = "#" + _connectionNumber + ": ";
			_transport = Verify.ArgumentNotNull(transport, "transport");
			_serverData = Verify.ArgumentNotNull(serverData, "serverData");
			_transport.ConnectedChanged += TransportConnectedChanged;
			_transport.FrameReady += TransportFrameReady;
			_transport.TransportException += TransportTransportException;
			_stateAction = ExpectingConnect;
			_incomingHeartBeatTimer = new Timer(HandleIncomingHeartBeatTimeout);
			_outgoingHeartBeatTimer = new Timer(HandleOutgoingHeartBeatTimeout);
			_connectTimer = new Timer(HandleConnectTimeout, null,
			                          (int) serverData.Config.ConnectFrameTimeout.TotalMilliseconds,
			                          Timeout.Infinite);
			Log.Debug(_logMessagePrefix + "Connect established");
		}
		public ServerSideSession(ServerData serverData)
		{
			SessionId = Guid.NewGuid().ToString();
			_serverData = Verify.ArgumentNotNull(serverData, "serverData");
		}