private void AcceptTcpClientCallback(IAsyncResult result)
{
var listener = (TcpListener)result.AsyncState;
//get the tcpClient and create a new WebSocket object.
var tcpClient = listener.EndAcceptTcpClient(result);
var websocket = new WebSocket(this, tcpClient);
websocket.BeginRead();
//listen for the next connection.
listener.BeginAcceptTcpClient(AcceptTcpClientCallback, listener);
}