|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.lyrisoft.chat.server.remote.ChatServer
This is the Chat Server
Field Summary | |
protected IAuthenticator |
_authenticator
|
protected long |
_creationTime
|
protected int |
_cumulativeLogins
|
protected Dispatcher |
_dispatcher
|
protected java.lang.Thread |
_dispatchThread
|
protected DistributedState |
_distributedState
|
protected Distributor |
_distributor
|
protected java.lang.Thread |
_distributorThread
|
protected boolean |
_keepGoing
|
protected java.lang.String |
_motd
|
protected int |
_port
|
protected java.util.HashMap |
_rooms
|
protected java.net.ServerSocket |
_serverSocket
|
protected javax.servlet.ServletContext |
_servletContext
|
protected java.util.HashMap |
_users
|
protected Vulture |
_vulture
|
protected java.lang.Thread |
_vultureThread
|
static boolean |
DEBUG
|
protected static Logger |
errorLogger
|
protected static Logger |
logger
|
Fields inherited from interface com.lyrisoft.chat.ICommands |
ACCESS_DENIED, ACK_KILL, ALREADY_SIGNED_ON, DELIMITER, EMOTE_TO_ROOM, EMOTE_TO_USER, ERROR, GET_ROOMS, GET_USERS_IN_ROOM, GET_USERS_ON_SERVER, HELP, HYPERLINK, IGNORE, INVALID_CHARACTER, INVITE, JOIN_ROOM, JOIN_ROOM_ACK, KICK, KILL, NO_INVITE, NO_SUCH_USER, OP, PART_ROOM, PART_ROOM_ACK, PING, PONG, REMOTE_CLIENT_MESSAGE, ROOM_ACCESS_DENIED, ROOM_DIFF, ROOM_MSG, ROOM_USER_DIFF, SAY_TO_ROOM, SAY_TO_USER, SHUTDOWN, SIGNOFF, SIGNON, SIGNON_ACK, STATS, UNIGNORE, UNINVITE, USER_DIFF, VERSION, WHOIS |
Fields inherited from interface com.lyrisoft.chat.server.remote.IServerCommands |
BROADCAST_PING, HELLO |
Constructor Summary | |
ChatServer()
|
|
ChatServer(javax.servlet.ServletContext context)
|
|
ChatServer(java.lang.String conf)
|
|
ChatServer(java.lang.String conf,
javax.servlet.ServletContext context)
|
Method Summary | |
protected void |
acceptConnections()
Tells the server to begin accepting connections. |
void |
announcePresence()
|
void |
broadcast(java.lang.String s)
|
void |
checkServerPings(long timeout)
|
static java.lang.String |
clientKey(ChatClient client)
returns a key for referencing the users hashmap. |
static java.lang.String |
clientKey(java.lang.String client)
returns a key for referencing the users hashmap. |
protected ChatClient |
createChatClient(java.net.Socket s)
|
protected Dispatcher |
createDispatcher()
|
protected void |
createLoggers(java.lang.String logFile,
java.lang.String errorLogFile)
|
RoomServer |
createRoomServer(java.lang.String roomName,
java.lang.String password)
|
protected Logger |
createServletContextLogger(java.lang.String logFile)
|
static void |
DEBUG(java.lang.String s)
|
void |
distribute(ChatClient client,
java.lang.String text)
|
void |
distributeRoomList()
|
void |
distributeRoomState(java.lang.String roomName)
|
void |
distributeUserList()
If user list is blank, just send an empty reply. |
ChatClient |
getClient(java.lang.String clientName)
Get a ChatClient by name |
int |
getCumulativeLogins()
|
static boolean |
getDebug()
|
Dispatcher |
getDispatcher()
|
java.lang.String[] |
getLocalRoomNames()
|
java.lang.String[] |
getLocalUserNames()
|
java.lang.String |
getName()
|
int |
getPort()
|
RoomServer |
getRoom(java.lang.String roomName)
Get the RoomServer for a particular room |
int |
getRoomCount()
get the number of rooms currently on the server |
java.lang.String[] |
getRoomNames()
Get the names of all the rooms on this server |
java.lang.String[] |
getRoomsFor(ChatClient client)
|
java.lang.String[] |
getServerNames()
|
long |
getUptime()
Get the uptime |
int |
getUserCount()
get the number of users currently on the server |
int |
getUserCountInRoom(java.lang.String roomName)
|
int |
getUserCountOnServer(java.lang.String server)
|
java.lang.String[] |
getUserNames()
Get the names of all the users on this server |
java.util.Map |
getUsers()
|
java.lang.String[] |
getUsersInRoom(java.lang.String roomName)
|
void |
handleBroadcastPing(java.lang.String server)
|
void |
handleIncoming(javax.jms.Message message)
Incoming message from the Distributor (JMS) |
void |
handlePong(java.lang.String server,
java.lang.String arg)
|
void |
initCommandProcessor(java.util.Properties p)
|
void |
initTranslator(java.util.Properties p)
|
void |
joinRoom(ChatClient client,
java.lang.String roomName,
java.lang.String password)
|
void |
kill(java.lang.String victim,
ChatClient killer,
java.lang.String message)
Kick a user off the system. |
static void |
log(java.lang.Exception e)
Log an exception (goes to the error log) |
static void |
log(java.lang.String message)
Log a message (goes to the standard log) |
static void |
logError(java.lang.String message)
Log an error (goes to the error log) |
static void |
main(java.lang.String[] args)
Instantiate a ChatServer and start accepting connections |
void |
notifyClientsRoomCreated(java.lang.String roomName)
|
void |
notifyClientsRoomDestroyed(java.lang.String roomName)
|
void |
partRoom(ChatClient client,
java.lang.String roomName)
Remote a user from a room |
void |
pleaseStop()
|
void |
preProcessProperties(java.util.Properties p)
A hook for reading in your own extra nfc.conf properties |
protected void |
readMotd()
|
void |
remoteJoinRoom(java.lang.String server,
java.lang.String username,
java.lang.String roomname,
java.lang.String password)
|
void |
remotePartRoom(java.lang.String server,
java.lang.String username,
java.lang.String roomname,
boolean isSignoff)
|
void |
remoteSignOff(java.lang.String server,
java.lang.String userId)
|
void |
remoteSignOn(java.lang.String server,
java.lang.String userId)
|
boolean |
roomExists(java.lang.String roomname)
|
static java.lang.String |
roomKey(RoomServer room)
returns a key for referencing the rooms hashmap. |
static java.lang.String |
roomKey(java.lang.String room)
returns a key for referencing the rooms hashmap. |
void |
sendBroadcastPing()
|
protected void |
sendMotd(ChatClient client)
|
void |
sendServerPing(java.lang.String server)
|
void |
sendServerPong(java.lang.String server,
java.lang.String arg)
|
boolean |
serverExists(java.lang.String servername)
|
void |
serverSignOff(java.lang.String server)
|
void |
serverSignOn(java.lang.String server)
|
void |
setRemoteUserList(java.lang.String server,
java.lang.String[] users)
|
protected static void |
showUsageAndExit()
|
void |
signOff(ChatClient client)
Sign off of the system. |
void |
signOn(ChatClient client,
java.lang.String password)
Sign on to the server |
boolean |
userExists(java.lang.String username)
|
protected void |
validateUserId(java.lang.String user)
Determines if a user id is valid. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final boolean DEBUG
protected static Logger logger
protected static Logger errorLogger
protected int _port
protected java.net.ServerSocket _serverSocket
protected boolean _keepGoing
protected long _creationTime
protected IAuthenticator _authenticator
protected java.util.HashMap _users
protected java.util.HashMap _rooms
protected java.lang.String _motd
protected Vulture _vulture
protected java.lang.Thread _vultureThread
protected Dispatcher _dispatcher
protected java.lang.Thread _dispatchThread
protected Distributor _distributor
protected java.lang.Thread _distributorThread
protected DistributedState _distributedState
protected int _cumulativeLogins
protected javax.servlet.ServletContext _servletContext
Constructor Detail |
public ChatServer(java.lang.String conf, javax.servlet.ServletContext context) throws java.lang.Exception
public ChatServer(javax.servlet.ServletContext context) throws java.lang.Exception
public ChatServer(java.lang.String conf) throws java.lang.Exception
public ChatServer() throws java.lang.Exception
Method Detail |
public int getPort()
public void preProcessProperties(java.util.Properties p) throws PropertyException
public int getCumulativeLogins()
protected Dispatcher createDispatcher()
public Dispatcher getDispatcher()
public void initTranslator(java.util.Properties p)
public void initCommandProcessor(java.util.Properties p)
protected void readMotd() throws ResourceException, java.io.IOException
public static void log(java.lang.String message)
public static void logError(java.lang.String message)
public static void log(java.lang.Exception e)
public RoomServer getRoom(java.lang.String roomName)
public ChatClient getClient(java.lang.String clientName)
protected void validateUserId(java.lang.String user) throws AccessException
public java.util.Map getUsers()
public void serverSignOn(java.lang.String server)
public void serverSignOff(java.lang.String server)
public void setRemoteUserList(java.lang.String server, java.lang.String[] users)
public void remoteSignOn(java.lang.String server, java.lang.String userId)
public void remoteSignOff(java.lang.String server, java.lang.String userId)
public void signOn(ChatClient client, java.lang.String password) throws AccessException, AccessDenied
client
- the ChatClientpassword
- AccessException
- is the login failedpublic void broadcast(java.lang.String s)
protected void sendMotd(ChatClient client)
public void kill(java.lang.String victim, ChatClient killer, java.lang.String message)
public void signOff(ChatClient client)
public void partRoom(ChatClient client, java.lang.String roomName)
public void notifyClientsRoomDestroyed(java.lang.String roomName)
public void remoteJoinRoom(java.lang.String server, java.lang.String username, java.lang.String roomname, java.lang.String password)
public void remotePartRoom(java.lang.String server, java.lang.String username, java.lang.String roomname, boolean isSignoff)
public void joinRoom(ChatClient client, java.lang.String roomName, java.lang.String password) throws RoomJoinException
public void notifyClientsRoomCreated(java.lang.String roomName)
public RoomServer createRoomServer(java.lang.String roomName, java.lang.String password)
public static java.lang.String roomKey(java.lang.String room)
public static java.lang.String roomKey(RoomServer room)
public static java.lang.String clientKey(ChatClient client)
public static java.lang.String clientKey(java.lang.String client)
protected void acceptConnections()
protected ChatClient createChatClient(java.net.Socket s) throws java.io.IOException
public void pleaseStop()
public java.lang.String[] getRoomNames()
public java.lang.String[] getLocalRoomNames()
public java.lang.String[] getServerNames()
public java.lang.String[] getUserNames()
public java.lang.String[] getLocalUserNames()
public java.lang.String[] getRoomsFor(ChatClient client)
public int getRoomCount()
public int getUserCount()
public long getUptime()
public static void main(java.lang.String[] args)
protected Logger createServletContextLogger(java.lang.String logFile)
protected void createLoggers(java.lang.String logFile, java.lang.String errorLogFile)
protected static void showUsageAndExit()
public void distribute(ChatClient client, java.lang.String text)
public void handleIncoming(javax.jms.Message message)
public java.lang.String getName()
public void announcePresence()
public void distributeRoomList()
public void distributeRoomState(java.lang.String roomName)
public void distributeUserList()
public int getUserCountInRoom(java.lang.String roomName)
public int getUserCountOnServer(java.lang.String server)
public java.lang.String[] getUsersInRoom(java.lang.String roomName)
public boolean userExists(java.lang.String username)
public boolean serverExists(java.lang.String servername)
public boolean roomExists(java.lang.String roomname)
public void checkServerPings(long timeout)
public void sendBroadcastPing()
public void sendServerPing(java.lang.String server)
public void sendServerPong(java.lang.String server, java.lang.String arg)
public void handlePong(java.lang.String server, java.lang.String arg)
public void handleBroadcastPing(java.lang.String server)
public static void DEBUG(java.lang.String s)
public static boolean getDebug()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |