Protocol Class |
Namespace: Crosser.Server.Modules.Protocol
public abstract class Protocol : IProtocol, IDisposable
The Protocol type exposes the following members.
| Name | Description | |
|---|---|---|
| AuthRequired |
True if the IBaseEndpoint requires authentication
| |
| ClientStats |
Clients statistics
| |
| ConnectionContext |
Connection information IConnectionContext | |
| Controllers |
The controller instances used by this connection
| |
| ProtocolIdentifier |
Identifier for the protocol, passed into the ctor from implementing protocols
| |
| PubSubHandler | IPubSubHandler module
| |
| Server |
Reference to the IServer | |
| Subscriptions |
Current subscriptions for this connection
| |
| Transport | IBaseTransport for the protocol
|
| Name | Description | |
|---|---|---|
| Dispose |
Clean up the usage of controllers for the connection
| |
| EnsureController |
Makes sure that there is an instance of a specific controller.
Also makes sure that security is in place. Knowing what methods the connection can call.
| |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
| ExecuteCall |
Invoke the correct RPC controller/method with the payload.
Also handles return values when needed
| |
| ExecuteCallSynchronously |
Invoke the correct RPC controller/method with the payload.
Also handles return values when needed
Will execute 1 operation at the time. Other operations will wait.
This will be executed when the IController or the method being invoked is decorated with the RunSynchronouslyAttribute | |
| Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
| FlushTransport |
Flushes the IBaseTransport write stream
| |
| GetControllerDelegate |
Creates a ControllerDelegate to use when calling the controller/method
| |
| GetDeadConnectionFrame |
Sent to clients when ping has failed more times than allowed
| |
| GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
| GetPingFrame |
Each protocol is responsible for returning a valid ping frame for that protocol
| |
| GetType | Gets the Type of the current instance. (Inherited from Object.) | |
| HasControllerInstanceOf |
True if the controllers repository has a instance of the specific BinaryKey | |
| InitClientStats |
Setup the properties on the ClientStats object
| |
| MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
| ReadLoop |
Each protocol should implement a read loop
| |
| RemoveController |
Removes a controller instance from the Controllers repository.
| |
| Send(Byte) |
Enqueue the data to send and update the IServerStatistics | |
| Send(BinaryKey, String, Byte) |
Each protocol is responsible for building the message to send
| |
| Send(Byte, Byte, Byte, Byte) | ||
| SendLoop |
Send loop that reads the OutQueue | |
| StartPing |
If heartbeat is enabled on this endpoint the method will initiate a ping/pong sequence
| |
| ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
| callbackId |
Buffer for callback-id.
| |
| callbackIdPos |
Length to read from callbackId | |
| Cancellation |
CancellationToken used in communication
| |
| CloseReason |
Reason CloseReason for closing the connection
| |
| controller |
Controller buffer, controller to call is within
| |
| controllerPos |
The length to read from the controller | |
| controllerToCall |
Cache controller since it will save time when same controller is called for each message
| |
| data |
Last byte operation read from the IBaseTransport | |
| disposed |
Flag for knowing if the object has been disposed
| |
| iam |
Buffer for the IAM message operation
| |
| iampos |
Size of the IAM message
| |
| InQueue |
Queue for incoming data
| |
| Interactive |
If true the protocol will respond with +OK messages for every valid operation. Only possible for full-duplex connections.
| |
| IsAuthenticated |
True if the Authenticate(IProtocol) method returned true
| |
| lastControllerAsByte |
Cache for last controller called
| |
| lastControllerKey |
Cache for the last controller called as BinaryKey | |
| lastMethodAsByte |
Cache for last method called
| |
| lastMethodKey |
Cache for the last method called as BinaryKey | |
| len |
Length to read from the IBaseTransport | |
| locker |
For blocking simultaneous access to certain areas
| |
| method |
Method buffer, method to call is within
| |
| methodPos |
The length to read from the method | |
| methodToCall |
Information about the method to be called ControllerDelegate | |
| OutQueue |
Queue for outgoing data
| |
| PubQueue |
Queue for messages published over a pub/sub pattern
| |
| read |
Read buffer
| |
| ReadState |
The ReadState for the ReadLoop
| |
| run |
The readloop will continue as long as this flag is true.
When false the connection will be disposed
| |
| size |
Size buffer
| |
| sizepos |
Size position (for knowing size to read from size buffer)
| |
| topic |
Topic parsed from the stream
| |
| topicpos |
Length of the topic
| |
| unsubcount |
Max messages to publish before doing automatic unsubscribe
| |
| unsubcountpos |
Length of unsub-count
| |
| validTopic |
Flag for knowing if the topic parsed is valid
| |
| write |
Write buffer
|