Exemple #1
0
        private void BeginReceive()
        {
            try
            {
                if (_buffer.Size - _buffer.Cursor < 512)
                {
                    if (_buffer.Size + 1024 > StompConfiguration.MaxClientBufferSize && _buffer.Size + 1 >= StompConfiguration.MaxClientBufferSize)
                    {
                        throw new Exception("Maximum buffer size reached");
                    }

                    int growSize = _buffer.Size + 1024;

                    if (growSize > StompConfiguration.MaxClientBufferSize)
                    {
                        growSize = StompConfiguration.MaxClientBufferSize;
                    }

                    _buffer.Resize(growSize);
                }

                _socket.BeginReceive(_buffer.Buffer, _buffer.Cursor, _buffer.Size - _buffer.Cursor, SocketFlags.None, new AsyncCallback(OnClientReceive), null);
            }
            catch (Exception)
            {
                OnInternalDisconnect();
            }
        }