Package com.jme3.network.base
Class DefaultServer
java.lang.Object
com.jme3.network.base.DefaultServer
- All Implemented Interfaces:
Server
A default implementation of the Server interface that delegates
its network connectivity to kernel.Kernel.
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
protected class
protected class
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
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, Class... classes) Adds a listener that will be notified when messages of the specified types are received from one of the clients.protected void
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
(Filter<? super HostedConnection> filter, Message message) Sends the specified message to all connected clients that match the filter.void
Sends the specified message to all connected clients.protected void
checkChannel
(int channel) void
close()
Closes all client connections, stops and running processing threads, and closes the host connection.protected void
protected void
dispatch
(HostedConnection source, Message m) protected void
protected void
protected int
getConnection
(int id) Retrieves a hosted connection by ID.protected HostedConnection
getConnection
(Endpoint endpoint) Retrieves a read-only collection of all currently connected connections.Returns the 'game name' for this server.Returns the manager for hosted services.int
Returns the game-specific version of this server used for detecting mismatched clients.boolean
Returns true if the server has active connections at the time of this call.boolean
Returns true if the server has been started.protected void
protected void
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, 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.
-
Constructor Details
-
DefaultServer
-
-
Method Details
-
addStandardServices
protected void addStandardServices() -
getGameName
Description copied from interface:Server
Returns the 'game name' for this server. This should match the 'game name' set on connecting clients or they will be turned away.- Specified by:
getGameName
in interfaceServer
-
getVersion
public int getVersion()Description copied from interface:Server
Returns the game-specific version of this server used for detecting mismatched clients.- Specified by:
getVersion
in interfaceServer
-
getServices
Description copied from interface:Server
Returns the manager for hosted services. Hosted services extend the functionality of the server.- Specified by:
getServices
in interfaceServer
-
addChannel
public int addChannel(int port) Description copied from interface:Server
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.- Specified by:
addChannel
in interfaceServer
-
checkChannel
protected void checkChannel(int channel) -
start
public void start()Description copied from interface:Server
Start the server so that it will begin accepting new connections and processing messages. -
isRunning
public boolean isRunning()Description copied from interface:Server
Returns true if the server has been started. -
close
public void close()Description copied from interface:Server
Closes all client connections, stops and running processing threads, and closes the host connection. -
broadcast
Description copied from interface:Server
Sends the specified message to all connected clients. -
broadcast
Description copied from interface:Server
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
Description copied from interface:Server
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 );
-
getConnection
Description copied from interface:Server
Retrieves a hosted connection by ID.- Specified by:
getConnection
in interfaceServer
-
hasConnections
public boolean hasConnections()Description copied from interface:Server
Returns true if the server has active connections at the time of this call.- Specified by:
hasConnections
in interfaceServer
-
getConnections
Description copied from interface:Server
Retrieves a read-only collection of all currently connected connections.- Specified by:
getConnections
in interfaceServer
-
addConnectionListener
Description copied from interface:Server
Adds a listener that will be notified when new hosted connections arrive.- Specified by:
addConnectionListener
in interfaceServer
-
removeConnectionListener
Description copied from interface:Server
Removes a previously registered connection listener.- Specified by:
removeConnectionListener
in interfaceServer
-
addMessageListener
Description copied from interface:Server
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.
- Specified by:
addMessageListener
in interfaceServer
-
addMessageListener
public void addMessageListener(MessageListener<? super HostedConnection> listener, Class... classes) Description copied from interface:Server
Adds a listener that will be notified when messages of the specified types are received from one of the clients.- Specified by:
addMessageListener
in interfaceServer
-
removeMessageListener
Description copied from interface:Server
Removes a previously registered wildcard listener. This does not remove this listener from any type-specific registrations.- Specified by:
removeMessageListener
in interfaceServer
-
removeMessageListener
public void removeMessageListener(MessageListener<? super HostedConnection> listener, Class... classes) Description copied from interface:Server
Removes a previously registered type-specific listener from the specified types.- Specified by:
removeMessageListener
in interfaceServer
-
dispatch
-
fireConnectionAdded
-
fireConnectionRemoved
-
getChannel
-
registerClient
-
getConnection
-
removeConnecting
-
connectionClosed
-