forked from External/mage
fixed issue 25 - server waits for all clients to confirm initialization before starting game
This commit is contained in:
parent
f81c238994
commit
3ca748e16d
9 changed files with 56 additions and 45 deletions
|
|
@ -49,6 +49,7 @@ public class Session {
|
|||
private UUID clientId;
|
||||
private String username;
|
||||
private int messageId = 0;
|
||||
private String ackMessage;
|
||||
private final CallbackServerSession callback = new CallbackServerSession();
|
||||
|
||||
public Session(String userName, UUID clientId) {
|
||||
|
|
@ -77,11 +78,11 @@ public class Session {
|
|||
return null;
|
||||
}
|
||||
|
||||
public synchronized void fireCallback(ClientCallback call) {
|
||||
public synchronized void fireCallback(final ClientCallback call) {
|
||||
call.setMessageId(messageId++);
|
||||
if (logger.isLoggable(Level.FINE))
|
||||
logger.fine(sessionId + " - " + call.getMessageId() + " - " + call.getMethod());
|
||||
try {
|
||||
call.setMessageId(messageId++);
|
||||
if (logger.isLoggable(Level.FINE))
|
||||
logger.fine(sessionId + " - " + call.getMessageId() + " - " + call.getMethod());
|
||||
callback.setCallback(call);
|
||||
} catch (InterruptedException ex) {
|
||||
logger.log(Level.SEVERE, null, ex);
|
||||
|
|
@ -100,6 +101,18 @@ public class Session {
|
|||
fireCallback(new ClientCallback("replayGame", null));
|
||||
}
|
||||
|
||||
public void ack(String message) {
|
||||
this.ackMessage = message;
|
||||
}
|
||||
|
||||
public String getAckMessage() {
|
||||
return ackMessage;
|
||||
}
|
||||
|
||||
public void clearAck() {
|
||||
this.ackMessage = "";
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue