Package io.socket.engineio.server
Class EngineIoSocket
- java.lang.Object
-
- io.socket.engineio.server.Emitter
-
- io.socket.engineio.server.EngineIoSocket
-
public final class EngineIoSocket extends Emitter
An engine.io socket. Objects of this class represents connections to remote clients one per object.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceEngineIoSocket.SocketedListener-
Nested classes/interfaces inherited from class io.socket.engineio.server.Emitter
Emitter.Listener
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringEMPTY_UPGRADESprivate static java.lang.StringHANDSHAKE_JSONprivate java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.ConcurrentLinkedQueue<EngineIoSocket.SocketedListener>>mCallbacksprivate java.lang.RunnablemCleanupFunctionprivate java.util.Map<java.lang.String,java.util.List<java.lang.String>>mInitialHeadersprivate java.util.Map<java.lang.String,java.lang.String>mInitialQueryprivate java.lang.ObjectmLockObjectprivate java.util.concurrent.ScheduledFuture<?>mPingFutureprivate java.lang.RunnablemPingTaskprivate java.util.concurrent.ScheduledFuture<?>mPingTimeoutFutureprivate java.lang.RunnablemPingTimeoutTaskprivate intmProtocolVersionprivate ReadyStatemReadyStateprivate java.util.concurrent.ScheduledExecutorServicemScheduledTaskHandlerprivate EngineIoServermServerprivate java.lang.StringmSidprivate TransportmTransportprivate java.util.concurrent.atomic.AtomicBooleanmUpgradingprivate java.util.LinkedList<Packet<?>>mWriteBufferprivate static java.util.List<Packet<?>>PAYLOAD_NOOPprivate static java.lang.StringWEBSOCKET_UPGRADES
-
Constructor Summary
Constructors Constructor Description EngineIoSocket(java.lang.Object lockObject, java.lang.String sid, int protocolVersion, EngineIoServer server, java.util.concurrent.ScheduledExecutorService scheduledTaskHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) booleancanUpgrade(java.lang.String transport)Checks whether the socket can be upgraded to another transport.private voidclearTransport()voidclose()Close this socket.private voidcloseTransport()Emitteremit(java.lang.String event, java.lang.Object... args)Executes each of listeners with the given args.private voidflush()(package private) java.lang.StringgetCurrentTransportName()Get the name of the current transport.java.lang.StringgetId()Gets the sid of this socket.java.util.Map<java.lang.String,java.util.List<java.lang.String>>getInitialHeaders()Get the headers of the initial HTTP connection.java.util.Map<java.lang.String,java.lang.String>getInitialQuery()Get the query parameters of the initial HTTP connection.intgetProtocolVersion()Gets the protocol version of this socket.ReadyStategetReadyState()Gets the ready state of this socket.(package private) voidinit(Transport transport)Called after instance creation to initialize transport.EngineIoSocketoff(java.lang.String event)Removes all listeners of the specified event.EngineIoSocketoff(java.lang.String event, EngineIoSocket.SocketedListener fn)Removes the listener.EngineIoSocketon(java.lang.String event, EngineIoSocket.SocketedListener fn)Listen on the event.private voidonClose(java.lang.String reason, java.lang.String description)private voidonError()private voidonOpen()private voidonPacket(Packet<?> packet)(package private) voidonRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)Handle an HTTP request.private voidresetPingTimeout(long timeout)private voidschedulePing()voidsend(Packet<?> packet)Send a packet to the remote client.private voidsendPacket(Packet<?> packet)private voidsendPing()private voidsetTransport(Transport transport)(package private) voidupdateInitialHeadersFromActiveTransport()(package private) voidupgrade(Transport transport)Perform upgrade to the specified transport.
-
-
-
Field Detail
-
PAYLOAD_NOOP
private static final java.util.List<Packet<?>> PAYLOAD_NOOP
-
EMPTY_UPGRADES
private static final java.lang.String EMPTY_UPGRADES
-
WEBSOCKET_UPGRADES
private static final java.lang.String WEBSOCKET_UPGRADES
-
HANDSHAKE_JSON
private static final java.lang.String HANDSHAKE_JSON
- See Also:
- Constant Field Values
-
mSid
private final java.lang.String mSid
-
mProtocolVersion
private final int mProtocolVersion
-
mServer
private final EngineIoServer mServer
-
mWriteBuffer
private final java.util.LinkedList<Packet<?>> mWriteBuffer
-
mCallbacks
private final java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.ConcurrentLinkedQueue<EngineIoSocket.SocketedListener>> mCallbacks
-
mLockObject
private final java.lang.Object mLockObject
-
mScheduledTaskHandler
private final java.util.concurrent.ScheduledExecutorService mScheduledTaskHandler
-
mPingTask
private final java.lang.Runnable mPingTask
-
mPingTimeoutTask
private final java.lang.Runnable mPingTimeoutTask
-
mPingFuture
private java.util.concurrent.ScheduledFuture<?> mPingFuture
-
mPingTimeoutFuture
private java.util.concurrent.ScheduledFuture<?> mPingTimeoutFuture
-
mUpgrading
private final java.util.concurrent.atomic.AtomicBoolean mUpgrading
-
mCleanupFunction
private java.lang.Runnable mCleanupFunction
-
mReadyState
private ReadyState mReadyState
-
mTransport
private Transport mTransport
-
mInitialQuery
private java.util.Map<java.lang.String,java.lang.String> mInitialQuery
-
mInitialHeaders
private java.util.Map<java.lang.String,java.util.List<java.lang.String>> mInitialHeaders
-
-
Constructor Detail
-
EngineIoSocket
EngineIoSocket(java.lang.Object lockObject, java.lang.String sid, int protocolVersion, EngineIoServer server, java.util.concurrent.ScheduledExecutorService scheduledTaskHandler)
-
-
Method Detail
-
getId
public java.lang.String getId()
Gets the sid of this socket.
-
getProtocolVersion
public int getProtocolVersion()
Gets the protocol version of this socket.
-
getReadyState
public ReadyState getReadyState()
Gets the ready state of this socket.
-
getInitialQuery
public java.util.Map<java.lang.String,java.lang.String> getInitialQuery()
Get the query parameters of the initial HTTP connection.
-
getInitialHeaders
public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getInitialHeaders()
Get the headers of the initial HTTP connection.
-
send
public void send(Packet<?> packet)
Send a packet to the remote client. Queuing of packets in case of polling transport are handled internally. This method is thread safe.- Parameters:
packet- The packet to send.
-
close
public void close()
Close this socket.
-
on
public EngineIoSocket on(java.lang.String event, EngineIoSocket.SocketedListener fn)
Listen on the event. NOTE: Unstable api. Might change in the future.- Parameters:
event- Event namefn- Event listener- Returns:
- A reference to this object
-
off
public EngineIoSocket off(java.lang.String event, EngineIoSocket.SocketedListener fn)
Removes the listener. NOTE: Unstable api. Might change in the future.- Parameters:
event- an event name.fn- Event listener.- Returns:
- a reference to this object.
-
off
public EngineIoSocket off(java.lang.String event)
Description copied from class:EmitterRemoves all listeners of the specified event.
-
emit
public Emitter emit(java.lang.String event, java.lang.Object... args)
Description copied from class:EmitterExecutes each of listeners with the given args.
-
init
void init(Transport transport)
Called after instance creation to initialize transport.- Parameters:
transport- The opened transport.
-
updateInitialHeadersFromActiveTransport
void updateInitialHeadersFromActiveTransport()
-
onRequest
void onRequest(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws java.io.IOExceptionHandle an HTTP request.- Parameters:
request- The HTTP request object.response- The HTTP response object.- Throws:
java.io.IOException- On IO error.
-
canUpgrade
boolean canUpgrade(java.lang.String transport)
Checks whether the socket can be upgraded to another transport.- Parameters:
transport- The transport to upgrade to.- Returns:
- Boolean value indicating if upgrade is possible.
-
upgrade
void upgrade(Transport transport)
Perform upgrade to the specified transport.- Parameters:
transport- The transport to upgrade to.
-
getCurrentTransportName
java.lang.String getCurrentTransportName()
Get the name of the current transport.- Returns:
- Name of current transport.
-
setTransport
private void setTransport(Transport transport)
-
closeTransport
private void closeTransport()
-
clearTransport
private void clearTransport()
-
onOpen
private void onOpen()
-
onClose
private void onClose(java.lang.String reason, java.lang.String description)
-
onError
private void onError()
-
onPacket
private void onPacket(Packet<?> packet)
-
sendPacket
private void sendPacket(Packet<?> packet)
-
flush
private void flush()
-
sendPing
private void sendPing()
-
schedulePing
private void schedulePing()
-
resetPingTimeout
private void resetPingTimeout(long timeout)
-
-