Class VirtualConnection

java.lang.Object
arc.net.Connection
com.xpdustry.claj.api.net.VirtualConnection

public class VirtualConnection extends arc.net.Connection
A connection that doesn't have a socket and buffer behind.
Every writes is done to the proxy, and listeners are triggered by him.
And some internal Connection states are exposed for more control.

This must not be used like a standard Connection, as some internal states like listeners cannot be fully overridden.

  • Field Details

    • proxy

      public final ProxyClient proxy
      The real client, aka the proxy.
    • id

      protected final int id
    • dispatcher

      protected final com.xpdustry.claj.common.net.DispatchListener dispatcher
    • remoteAddress

      protected final InetSocketAddress remoteAddress
      Fake address calculated using the hash of the real client address provided by the server.
      TCP and UDP ports are always the same, so no need to have two InetSocketAddress.
    • name

      protected String name
  • Constructor Details

    • VirtualConnection

      public VirtualConnection(ProxyClient proxy, int id, long addressHash)
  • Method Details

    • sendTCP

      public int sendTCP(Object object)
      Overrides:
      sendTCP in class arc.net.Connection
    • sendUDP

      public int sendUDP(Object object)
      Overrides:
      sendUDP in class arc.net.Connection
    • close

      public void close(arc.net.DcReason reason)
      Overrides:
      close in class arc.net.Connection
    • closeQuietly

      public void closeQuietly(arc.net.DcReason reason)
      Close the connection without notify the server about that.
      Common use is when the server itself is saying to close the connection.
    • getListeners

      public arc.net.NetListener[] getListeners()
    • addListener

      public void addListener(arc.net.NetListener listener)
      Only used when sending world data
      Overrides:
      addListener in class arc.net.Connection
    • removeListener

      public void removeListener(arc.net.NetListener listener)
      Only used when sending world data
      Overrides:
      removeListener in class arc.net.Connection
    • notifyConnected0

      public void notifyConnected0()
    • notifyDisconnected0

      public void notifyDisconnected0(arc.net.DcReason reason)
    • notifyIdle0

      public void notifyIdle0()
    • notifyReceived0

      public void notifyReceived0(Object object)
    • updateIdle

      public void updateIdle()
    • resetIdle

      public void resetIdle()
    • setConnected0

      public void setConnected0(boolean connected)
    • getID

      public int getID()
      Overrides:
      getID in class arc.net.Connection
    • isConnected

      public boolean isConnected()
      Overrides:
      isConnected in class arc.net.Connection
    • getLastProtocolError

      public arc.net.ArcNetException getLastProtocolError()
      Overrides:
      getLastProtocolError in class arc.net.Connection
    • updateReturnTripTime

      public void updateReturnTripTime()
      Overrides:
      updateReturnTripTime in class arc.net.Connection
    • getReturnTripTime

      public int getReturnTripTime()
      Overrides:
      getReturnTripTime in class arc.net.Connection
    • setKeepAliveTCP

      public void setKeepAliveTCP(int keepAliveMillis)
      Overrides:
      setKeepAliveTCP in class arc.net.Connection
    • setTimeout

      public void setTimeout(int timeoutMillis)
      Overrides:
      setTimeout in class arc.net.Connection
    • getEndPoint

      public arc.net.EndPoint getEndPoint()
      Overrides:
      getEndPoint in class arc.net.Connection
    • getRemoteAddressTCP

      public InetSocketAddress getRemoteAddressTCP()
      Overrides:
      getRemoteAddressTCP in class arc.net.Connection
    • getRemoteAddressUDP

      public InetSocketAddress getRemoteAddressUDP()
      Overrides:
      getRemoteAddressUDP in class arc.net.Connection
    • setName

      public void setName(String name)
      Overrides:
      setName in class arc.net.Connection
    • getTcpWriteBufferSize

      public int getTcpWriteBufferSize()
      Overrides:
      getTcpWriteBufferSize in class arc.net.Connection
    • isIdle

      public boolean isIdle()
      The server will notify if the client is idling.
      Overrides:
      isIdle in class arc.net.Connection
    • setIdleThreshold

      public void setIdleThreshold(float idleThreshold)
      Overrides:
      setIdleThreshold in class arc.net.Connection
    • toString

      public String toString()
      Overrides:
      toString in class arc.net.Connection