123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #if !BESTHTTP_DISABLE_SOCKETIO
- using System.Collections.Generic;
- namespace BestHTTP.SocketIO.Transports
- {
- public enum TransportTypes
- {
- Polling,
- #if !BESTHTTP_DISABLE_WEBSOCKET
- WebSocket
- #endif
- }
- /// <summary>
- /// Possible states of an ITransport implementation.
- /// </summary>
- public enum TransportStates : int
- {
- /// <summary>
- /// The transport is connecting to the server.
- /// </summary>
- Connecting = 0,
- /// <summary>
- /// The transport is connected, and started the opening process.
- /// </summary>
- Opening = 1,
- /// <summary>
- /// The transport is open, can send and receive packets.
- /// </summary>
- Open = 2,
- /// <summary>
- /// The transport is closed.
- /// </summary>
- Closed = 3,
- /// <summary>
- /// The transport is paused.
- /// </summary>
- Paused = 4
- }
- /// <summary>
- /// An interface that a Socket.IO transport must implement.
- /// </summary>
- public interface ITransport
- {
- /// <summary>
- /// Type of this transport.
- /// </summary>
- TransportTypes Type { get; }
- /// <summary>
- /// Current state of the transport
- /// </summary>
- TransportStates State { get; }
- /// <summary>
- /// SocketManager instance that this transport is bound to.
- /// </summary>
- SocketManager Manager { get; }
- /// <summary>
- /// True if the transport is busy with sending messages.
- /// </summary>
- bool IsRequestInProgress { get; }
- /// <summary>
- /// True if the transport is busy with a poll request.
- /// </summary>
- bool IsPollingInProgress { get; }
- /// <summary>
- /// Start open/upgrade the transport.
- /// </summary>
- void Open();
- /// <summary>
- /// Do a poll for available messages on the server.
- /// </summary>
- void Poll();
- /// <summary>
- /// Send a single packet to the server.
- /// </summary>
- void Send(Packet packet);
- /// <summary>
- /// Send a list of packets to the server.
- /// </summary>
- void Send(List<Packet> packets);
- /// <summary>
- /// Close this transport.
- /// </summary>
- void Close();
- }
- }
- #endif
|