com.jme3.network
Interface Server

All Known Implementing Classes:
DefaultServer

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

getGameName

java.lang.String getGameName()
Returns the 'game name' for this server. This should match the 'game name' set on connecting clients or they will be turned away.


getVersion

int getVersion()
Returns the game-specific version of this server used for detecting mismatched clients.


broadcast

void broadcast(Message message)
Sends the specified message to all connected clients.


broadcast

void broadcast(Filter<? super HostedConnection> filter,
               Message message)
Sends the specified message to all connected clients that match the filter. If no filter is specified then this is the same as calling broadcast(message) and the message will be delivered to all connections.

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 );
  


broadcast

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. If no filter is specified then this is the same as calling broadcast(message) and the message will be delivered to all connections.

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 );
  


start

void start()
Start the server so that it will began accepting new connections and processing messages.


addChannel

int addChannel(int port)
Adds an alternate channel to the server, using the specified port. This is an entirely separate connection where messages are sent and received in parallel to the two primary default channels. All channels must be added before the connection is started. Returns the ID of the created channel for use when specifying the channel in send or broadcast calls. The ID is returned entirely out of convenience since the IDs are predictably incremented. The first channel is 0, second is 1, and so on.


isRunning

boolean isRunning()
Returns true if the server has been started.


close

void close()
Closes all client connections, stops and running processing threads, and closes the host connection.


getConnection

HostedConnection getConnection(int id)
Retrieves a hosted connection by ID.


getConnections

java.util.Collection<HostedConnection> getConnections()
Retrieves a read-only collection of all currently connected connections.


hasConnections

boolean hasConnections()
Returns true if the server has active connections at the time of this call.


addConnectionListener

void addConnectionListener(ConnectionListener listener)
Adds a listener that will be notified when new hosted connections arrive.


removeConnectionListener

void removeConnectionListener(ConnectionListener listener)
Removes a previously registered connection listener.


addMessageListener

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.

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.


addMessageListener

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.


removeMessageListener

void removeMessageListener(MessageListener<? super HostedConnection> listener)
Removes a previously registered wildcard listener. This does not remove this listener from any type-specific registrations.


removeMessageListener

void removeMessageListener(MessageListener<? super HostedConnection> listener,
                           java.lang.Class... classes)
Removes a previously registered type-specific listener from the specified types.