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 IWebClient
private 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 IWebClient
private void sendToClient(java.lang.String s)
public void grantAdminStatus()
grantAdminStatus
in interface IWebClient
public void didEnroll(java.lang.String gameId, java.lang.String username)
didEnroll
in interface IWebClient
public void didUnenroll(java.lang.String gameId, java.lang.String username)
didUnenroll
in interface IWebClient
public void gameCancelled(java.lang.String gameId, java.lang.String byUser)
gameCancelled
in interface IWebClient
public void userInfo(int loggedin, int enrolled, int playing, int dead, long ago, java.lang.String text)
userInfo
in interface IWebClient
public void gameInfo(GameInfo gi)
gameInfo
in interface IWebClient
public void gameStartsSoon(java.lang.String gameId, java.lang.String byUser)
gameStartsSoon
in interface IWebClient
public void gameStartsNow(java.lang.String gameId, int port, java.lang.String hostingHost)
gameStartsNow
in interface IWebClient
public void chatDeliver(java.lang.String chatId, long when, java.lang.String sender, java.lang.String message, boolean resent)
chatDeliver
in interface IWebClient
public void deliverGeneralMessage(long when, boolean error, java.lang.String title, java.lang.String message)
deliverGeneralMessage
in interface IWebClient
public void requestAttention(long when, java.lang.String byUser, boolean byAdmin, java.lang.String message, int beepCount, long beepInterval, boolean windows)
requestAttention
in interface IWebClient
public void requestPing(java.lang.String arg1, java.lang.String arg2, java.lang.String arg3)
public void connectionReset(boolean forcedLogout)
connectionReset
in interface IWebClient