FromBytes() public static method

public static FromBytes ( IDataRecord record ) : ScaleoutMessage
record IDataRecord
return Microsoft.AspNet.SignalR.Messaging.ScaleoutMessage
示例#1
0
        private void ProcessRecord(IDataRecord record, DbOperation dbOperation)
        {
            var             id      = record.GetInt64(0);
            ScaleoutMessage message = SqlPayload.FromBytes(record);

            _trace.TraceVerbose("{0}SqlReceiver last payload ID={1}, new payload ID={2}", _tracePrefix, _lastPayloadId, id);

            if (id > _lastPayloadId + 1)
            {
                _trace.TraceError("{0}Missed message(s) from SQL Server. Expected payload ID {1} but got {2}.", _tracePrefix, _lastPayloadId + 1, id);
            }
            else if (id <= _lastPayloadId)
            {
                _trace.TraceInformation("{0}Duplicate message(s) or payload ID reset from SQL Server. Last payload ID {1}, this payload ID {2}", _tracePrefix, _lastPayloadId, id);
            }

            _lastPayloadId = id;

            // Update the Parameter with the new payload ID
            dbOperation.Parameters[0].Value = _lastPayloadId;

            _trace.TraceVerbose("{0}Updated receive reader initial payload ID parameter={1}", _tracePrefix, _dbOperation.Parameters[0].Value);

            _trace.TraceVerbose("{0}Payload {1} containing {2} message(s) received", _tracePrefix, id, message.Messages.Count);

            Received((ulong)id, message);
        }
示例#2
0
        private void ProcessRecord(IDataRecord record, DbOperation dbOperation)
        {
            var id      = record.GetInt64(0);
            var payload = SqlPayload.FromBytes(record.GetBinary(1));

            if (id != _lastPayloadId + 1)
            {
                _trace.TraceError("{0}Missed message(s) from SQL Server. Expected payload ID {1} but got {2}.", _tracePrefix, _lastPayloadId + 1, id);
            }

            if (id <= _lastPayloadId)
            {
                _trace.TraceInformation("{0}Duplicate message(s) or payload ID reset from SQL Server. Last payload ID {1}, this payload ID {2}", _tracePrefix, _lastPayloadId, id);
            }

            _lastPayloadId = id;

            // Update the Parameter with the new payload ID
            dbOperation.Parameters[0].Value = _lastPayloadId;

            // Pass to the underlying message bus
            _onReceived((ulong)id, payload.Messages);

            _trace.TraceVerbose("{0}Payload {1} containing {2} message(s) received", _tracePrefix, id, payload.Messages.Count);
        }