|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Server
Represents a host that can send and receive messages to a set of remote client connections.
Method Summary | |
---|---|
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. |
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 began accepting new connections and processing messages. |
Method Detail |
---|
java.lang.String getGameName()
int getVersion()
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)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |