public interface Server
Modifier and Type | Method and Description |
---|---|
int |
addChannel(int port)
Adds an alternate channel to the server, using the specified port.
|
void |
addConnectionListener(ConnectionListener listener)
Adds a listener that will be notified when new hosted connections
arrive.
|
void |
addMessageListener(MessageListener<? super HostedConnection> listener)
Adds a listener that will be notified when any message or object
is received from one of the clients.
|
void |
addMessageListener(MessageListener<? super HostedConnection> listener,
java.lang.Class... classes)
Adds a listener that will be notified when messages of the specified
types are received from one of the clients.
|
void |
broadcast(Filter<? super HostedConnection> filter,
Message message)
Sends the specified message to all connected clients that match
the filter.
|
void |
broadcast(int channel,
Filter<? super HostedConnection> filter,
Message message)
Sends the specified message over the specified alternate channel to all connected
clients that match the filter.
|
void |
broadcast(Message message)
Sends the specified message to all connected clients.
|
void |
close()
Closes all client connections, stops and running processing threads, and
closes the host connection.
|
HostedConnection |
getConnection(int id)
Retrieves a hosted connection by ID.
|
java.util.Collection<HostedConnection> |
getConnections()
Retrieves a read-only collection of all currently connected connections.
|
java.lang.String |
getGameName()
Returns the 'game name' for this server.
|
HostedServiceManager |
getServices()
Returns the manager for hosted services.
|
int |
getVersion()
Returns the game-specific version of this server used for detecting
mismatched clients.
|
boolean |
hasConnections()
Returns true if the server has active connections at the time of this
call.
|
boolean |
isRunning()
Returns true if the server has been started.
|
void |
removeConnectionListener(ConnectionListener listener)
Removes a previously registered connection listener.
|
void |
removeMessageListener(MessageListener<? super HostedConnection> listener)
Removes a previously registered wildcard listener.
|
void |
removeMessageListener(MessageListener<? super HostedConnection> listener,
java.lang.Class... classes)
Removes a previously registered type-specific listener from
the specified types.
|
void |
start()
Start the server so that it will begin accepting new connections
and processing messages.
|
java.lang.String getGameName()
int getVersion()
HostedServiceManager getServices()
void broadcast(Message message)
void broadcast(Filter<? super HostedConnection> filter, Message message)
Examples:
// Broadcast to connections: conn1, conn2, and conn3 server.broadcast( Filters.in( conn1, conn2, conn3 ), message ); // Broadcast to all connections exception source server.broadcast( Filters.notEqualTo( source ), message );
void broadcast(int channel, Filter<? super HostedConnection> filter, Message message)
Examples:
// Broadcast to connections: conn1, conn2, and conn3 server.broadcast( Filters.in( conn1, conn2, conn3 ), message ); // Broadcast to all connections exception source server.broadcast( Filters.notEqualTo( source ), message );
void start()
int addChannel(int port)
boolean isRunning()
void close()
HostedConnection getConnection(int id)
java.util.Collection<HostedConnection> getConnections()
boolean hasConnections()
void addConnectionListener(ConnectionListener listener)
void removeConnectionListener(ConnectionListener listener)
void addMessageListener(MessageListener<? super HostedConnection> listener)
Note about MessageListener multithreading: on the server, message events may be delivered by more than one thread depending on the server implementation used. Listener implementations should treat their shared data structures accordingly and set them up for multithreaded access. The only threading guarantee is that for a single HostedConnection, there will only ever be one thread at a time and the messages will always be delivered to that connection in the order that they were delivered. This is the only restriction placed upon server message dispatch pool implementations.
void addMessageListener(MessageListener<? super HostedConnection> listener, java.lang.Class... classes)
void removeMessageListener(MessageListener<? super HostedConnection> listener)
void removeMessageListener(MessageListener<? super HostedConnection> listener, java.lang.Class... classes)