Package net.carcdr.yhocuspocus.websocket
Class WebSocketTransport
java.lang.Object
net.carcdr.yhocuspocus.websocket.WebSocketTransport
- All Implemented Interfaces:
AutoCloseable,net.carcdr.yhocuspocus.transport.Transport
public class WebSocketTransport
extends Object
implements net.carcdr.yhocuspocus.transport.Transport
WebSocket transport implementation using Jetty WebSocket.
This class adapts a Jetty WebSocket Session to the
Transport interface, allowing YHocuspocus to work with
WebSocket connections.
Thread-safe implementation that handles:
- Binary message transmission
- Connection state tracking
- Graceful closure with WebSocket close codes
- Remote address extraction
- Since:
- 1.0.0
-
Constructor Summary
ConstructorsConstructorDescriptionWebSocketTransport(org.eclipse.jetty.websocket.api.Session session) Creates a new WebSocket transport from a Jetty session. -
Method Summary
Modifier and TypeMethodDescriptionvoidorg.eclipse.jetty.websocket.api.SessionGets the underlying Jetty WebSocket session.booleanisOpen()send(byte[] message) voidsetReceiveListener(net.carcdr.yhocuspocus.transport.ReceiveListener listener) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.carcdr.yhocuspocus.transport.Transport
close
-
Constructor Details
-
WebSocketTransport
public WebSocketTransport(org.eclipse.jetty.websocket.api.Session session) Creates a new WebSocket transport from a Jetty session.- Parameters:
session- the WebSocket session (must not be null)- Throws:
IllegalArgumentException- if session is null
-
-
Method Details
-
send
- Specified by:
sendin interfacenet.carcdr.yhocuspocus.transport.Transport
-
getConnectionId
- Specified by:
getConnectionIdin interfacenet.carcdr.yhocuspocus.transport.Transport
-
close
- Specified by:
closein interfacenet.carcdr.yhocuspocus.transport.Transport
-
isOpen
public boolean isOpen()- Specified by:
isOpenin interfacenet.carcdr.yhocuspocus.transport.Transport
-
getRemoteAddress
- Specified by:
getRemoteAddressin interfacenet.carcdr.yhocuspocus.transport.Transport
-
setReceiveListener
public void setReceiveListener(net.carcdr.yhocuspocus.transport.ReceiveListener listener) - Specified by:
setReceiveListenerin interfacenet.carcdr.yhocuspocus.transport.Transport
-
getSession
public org.eclipse.jetty.websocket.api.Session getSession()Gets the underlying Jetty WebSocket session.- Returns:
- the WebSocket session
-