public class WebServerClient extends java.lang.Object implements IWebClient
| Modifier and Type | Field and Description |
|---|---|
private int |
clientVersion
Client side version
|
private WebServerClientSocketThread |
cst
The client socket thread that handled the low-level connection stuff
|
private long |
gameStartsNowSent
Time when last gameStartsNowSent was sent (in ms since epoch)
|
private long |
gameStartsSoonSent
Time when last gameStartsSoonSent was sent (in ms since epoch)
|
private boolean |
loggedIn
Whether or not this WebServerClient is at the moment logged in
|
private static java.util.logging.Logger |
LOGGER |
private static java.lang.String |
sep |
private WebServer |
server
The web server object that is managing all WebServerClients
|
private java.lang.String |
unverifiedUsername
During registration request and sending of confirmation code,
we do not have a user yet.
|
private User |
user
The user associated with this WebClient connection
|
alreadyLoggedIn, chatDeliver, connectionClosed, didEnroll, didUnenroll, forcedLogout, gameCancelled, gameInfo, gameStarted, gameStartsNow, gameStartsSoon, generalMessage, grantAdmin, pingRequest, requestAttention, systemMessage, tooManyUsers, userInfo| Constructor and Description |
|---|
WebServerClient(WebServer server,
java.net.Socket socket) |
| Modifier and Type | Method and Description |
|---|---|
void |
chatDeliver(java.lang.String chatId,
long when,
java.lang.String sender,
java.lang.String message,
boolean resent) |
void |
connectionReset(boolean forcedLogout) |
void |
deliverGeneralMessage(long when,
boolean error,
java.lang.String title,
java.lang.String message) |
void |
didEnroll(java.lang.String gameId,
java.lang.String username) |
void |
didUnenroll(java.lang.String gameId,
java.lang.String username) |
private java.lang.String |
ensureNotAlreadyLoggedIn(java.lang.String username,
boolean force)
if password is okay, check first whether same user is already
logged in with another connection; if yes,
when force is not set (1st try), send back the "already logged in";
reacting on that, client will prompt whether to force the old
connection out, and if user answers yes, will send a 2nd login
message, this time with force flag set.
|
void |
gameCancelled(java.lang.String gameId,
java.lang.String byUser) |
void |
gameInfo(GameInfo gi) |
void |
gameStartsNow(java.lang.String gameId,
int port,
java.lang.String hostingHost) |
void |
gameStartsSoon(java.lang.String gameId,
java.lang.String byUser) |
int |
getClientVersion() |
boolean |
getLoggedIn() |
java.lang.String |
getUnverifiedUsername() |
(package private) User |
getUser() |
(package private) java.lang.String |
getUsername() |
WebServerClientSocketThread |
getWSCSThread() |
void |
grantAdminStatus() |
void |
handleLogout() |
boolean |
parseLine(java.lang.String fromClient) |
void |
processChatLine(java.lang.String chatId,
java.lang.String sender,
java.lang.String message) |
void |
requestAttention(long when,
java.lang.String byUser,
boolean byAdmin,
java.lang.String message,
int beepCount,
long beepInterval,
boolean windows) |
void |
requestPing(java.lang.String arg1,
java.lang.String arg2,
java.lang.String arg3) |
void |
requestPingIfNeeded(long now) |
void |
requestPingNow() |
private void |
sendToClient(java.lang.String s) |
private void |
setClientVersion(int version) |
void |
setLoggedIn(boolean val) |
void |
setUnverifiedUsername(java.lang.String name) |
private void |
setUser(User u) |
void |
startThread() |
void |
systemMessage(long now,
java.lang.String message) |
void |
userInfo(int loggedin,
int enrolled,
int playing,
int dead,
long ago,
java.lang.String text) |
private static final java.util.logging.Logger LOGGER
private static final java.lang.String sep
private final WebServerClientSocketThread cst
private WebServer server
private boolean loggedIn
private int clientVersion
private User user
private java.lang.String unverifiedUsername
private long gameStartsNowSent
private long gameStartsSoonSent
public WebServerClient(WebServer server, java.net.Socket socket)
public void startThread()
public WebServerClientSocketThread getWSCSThread()
private void setClientVersion(int version)
public int getClientVersion()
getClientVersion in interface IWebClientprivate void setUser(User u)
User getUser()
java.lang.String getUsername()
public void setUnverifiedUsername(java.lang.String name)
public java.lang.String getUnverifiedUsername()
public void requestPingIfNeeded(long now)
public void requestPingNow()
public void setLoggedIn(boolean val)
public boolean getLoggedIn()
public void handleLogout()
public boolean parseLine(java.lang.String fromClient)
public void processChatLine(java.lang.String chatId,
java.lang.String sender,
java.lang.String message)
private java.lang.String ensureNotAlreadyLoggedIn(java.lang.String username,
boolean force)
public void systemMessage(long now,
java.lang.String message)
systemMessage in interface IWebClientprivate void sendToClient(java.lang.String s)
public void grantAdminStatus()
grantAdminStatus in interface IWebClientpublic void didEnroll(java.lang.String gameId,
java.lang.String username)
didEnroll in interface IWebClientpublic void didUnenroll(java.lang.String gameId,
java.lang.String username)
didUnenroll in interface IWebClientpublic void gameCancelled(java.lang.String gameId,
java.lang.String byUser)
gameCancelled in interface IWebClientpublic void userInfo(int loggedin,
int enrolled,
int playing,
int dead,
long ago,
java.lang.String text)
userInfo in interface IWebClientpublic void gameInfo(GameInfo gi)
gameInfo in interface IWebClientpublic void gameStartsSoon(java.lang.String gameId,
java.lang.String byUser)
gameStartsSoon in interface IWebClientpublic void gameStartsNow(java.lang.String gameId,
int port,
java.lang.String hostingHost)
gameStartsNow in interface IWebClientpublic void chatDeliver(java.lang.String chatId,
long when,
java.lang.String sender,
java.lang.String message,
boolean resent)
chatDeliver in interface IWebClientpublic void deliverGeneralMessage(long when,
boolean error,
java.lang.String title,
java.lang.String message)
deliverGeneralMessage in interface IWebClientpublic void requestAttention(long when,
java.lang.String byUser,
boolean byAdmin,
java.lang.String message,
int beepCount,
long beepInterval,
boolean windows)
requestAttention in interface IWebClientpublic void requestPing(java.lang.String arg1,
java.lang.String arg2,
java.lang.String arg3)
public void connectionReset(boolean forcedLogout)
connectionReset in interface IWebClient