リーダーのいないピア ツー ピア ネットワークでリーダーの選出を開始するのは誰ですか?. メッセージを受信するときに実装したコードを次に示します。
if (message.startsWith(ELECTION)) {
int recievedID = Integer.parseInt(ripMessage(ELECTION, message));
if (processID > recievedID) {
sendToAll(ELECTION + processID);
} else if (processID < recievedID) {
sendToAll(ACKNOWLEDGE);
}
} else if (message.startsWith(ACKNOWLEDGE)) {
ackRecv++;
if (connections.size() == ackRecv) {
connection.sendMessage(LEADER + processID);
this.isLeader = true;
this.leaderID = processID;
ackRecv = 0;
}
} else if (message.startsWith(LEADER)) {
int recievedID = Integer.parseInt(ripMessage(LEADER, message));
this.leaderID = recievedID;
this.isLeader = false;
}