Fixed sub/unsub problem
This commit is contained in:
parent
57004048e5
commit
94d6cf984f
2 changed files with 146 additions and 131 deletions
|
|
@ -32,12 +32,28 @@ class _GamePageState extends State<GamePage> {
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
socket.on("hello", (idky) {
|
socket.on("hello", _onHelloEvent);
|
||||||
|
socket.on("gameStatus", _onGameStatusEvent);
|
||||||
|
socket.on("leaveGameResponse", _onLeaveGameResponseEvent);
|
||||||
|
socket.on("chatResponse", _onChatResponseEvent);
|
||||||
|
if (isGuesser) {
|
||||||
|
socket.on("guessResponse", _onGuessResponseEvent);
|
||||||
|
} else {
|
||||||
|
socket.on("guess", _onGuessEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
chat.listen((data) {
|
||||||
|
_scrollToEnd();
|
||||||
|
_showMessageNotification(data.last);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void _onHelloEvent(dynamic idky) {
|
||||||
socket.dispose();
|
socket.dispose();
|
||||||
Get.offAllNamed("/auth");
|
Get.offAllNamed("/auth");
|
||||||
});
|
}
|
||||||
|
|
||||||
socket.on("gameStatus", (data) {
|
void _onGameStatusEvent(dynamic data) {
|
||||||
bool won = data[0];
|
bool won = data[0];
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
title: "Game ended",
|
title: "Game ended",
|
||||||
|
|
@ -49,9 +65,9 @@ class _GamePageState extends State<GamePage> {
|
||||||
Get.offAllNamed("/home");
|
Get.offAllNamed("/home");
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
|
|
||||||
socket.on("leaveGameResponse", (data) {
|
void _onLeaveGameResponseEvent(dynamic data) {
|
||||||
if (data[0] == true && data[1] == 410) {
|
if (data[0] == true && data[1] == 410) {
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
title: "Game ended",
|
title: "Game ended",
|
||||||
|
|
@ -68,39 +84,38 @@ class _GamePageState extends State<GamePage> {
|
||||||
Get.put(socket);
|
Get.put(socket);
|
||||||
Get.offAllNamed("/home");
|
Get.offAllNamed("/home");
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
socket.on("chatResponse", (data) {
|
void _onChatResponseEvent(dynamic data) {
|
||||||
bool ok = data[0];
|
bool ok = data[0];
|
||||||
if (ok) {
|
if (ok) {
|
||||||
chat.add(ChatEntry(data[1]["from"], data[1]["message"]));
|
chat.add(ChatEntry(data[1]["from"], data[1]["message"]));
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
if (isGuesser) {
|
void _onGuessEvent(dynamic data) {
|
||||||
socket.on("guessResponse", _onGuessResponse);
|
|
||||||
} else {
|
|
||||||
socket.on("guess", (data) {
|
|
||||||
setState(() {
|
setState(() {
|
||||||
guessedColors.add(data);
|
guessedColors.add(data);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
chat.listen((data) {
|
void _onGuessResponseEvent(dynamic data) {
|
||||||
_scrollToEnd();
|
bool ok = data[0];
|
||||||
_showMessageNotification(data.last);
|
if (ok) {
|
||||||
});
|
Get.snackbar("Success", "Guess sent successfully");
|
||||||
|
} else {
|
||||||
|
Get.snackbar("Error", "Guess failed to send");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
socket.off("hello");
|
socket.off("hello", _onHelloEvent);
|
||||||
socket.off("gameStatus");
|
socket.off("gameStatus", _onGameStatusEvent);
|
||||||
socket.off("leaveGameResponse");
|
socket.off("leaveGameResponse", _onLeaveGameResponseEvent);
|
||||||
socket.off("chatResponse");
|
socket.off("chatResponse", _onChatResponseEvent);
|
||||||
socket.off("guessResponse");
|
socket.off("guessResponse", _onGuessResponseEvent);
|
||||||
socket.off("guess");
|
socket.off("guess", _onGuessEvent);
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -352,15 +367,6 @@ class _GamePageState extends State<GamePage> {
|
||||||
socket.emit("guess", [gameInfo.id, name]);
|
socket.emit("guess", [gameInfo.id, name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onGuessResponse(dynamic data) {
|
|
||||||
bool ok = data[0];
|
|
||||||
if (ok) {
|
|
||||||
Get.snackbar("Success", "Guess sent successfully");
|
|
||||||
} else {
|
|
||||||
Get.snackbar("Error", "Guess failed to send");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _openChat() {
|
void _openChat() {
|
||||||
Get.bottomSheet(BottomSheet(
|
Get.bottomSheet(BottomSheet(
|
||||||
onClosing: () {},
|
onClosing: () {},
|
||||||
|
|
|
||||||
|
|
@ -31,12 +31,24 @@ class _HomePageState extends State<HomePage> {
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
socket.on("hello", (idky) {
|
socket.on("hello", _onHelloEvent);
|
||||||
|
socket.on("update", _onUpdateEvent);
|
||||||
|
socket.on("updateNeeded", _onUpdateNeededEvent);
|
||||||
|
socket.on("removeGameResponse", _onRemoveGameResponseEvent);
|
||||||
|
socket.on("createGameResponse", _onCreateGameResponseEvent);
|
||||||
|
socket.on("getUserDataResponse", _onGetUserDataResponseEvent);
|
||||||
|
socket.on("joinGameResponse", onJoinGameResponseEvent);
|
||||||
|
|
||||||
|
socket.emit("getUserData");
|
||||||
|
socket.emit("getUpdate");
|
||||||
|
}
|
||||||
|
|
||||||
|
void _onHelloEvent(dynamic idky) {
|
||||||
socket.dispose();
|
socket.dispose();
|
||||||
Get.offAllNamed("/auth");
|
Get.offAllNamed("/auth");
|
||||||
});
|
}
|
||||||
|
|
||||||
socket.on("update", (update) {
|
void _onUpdateEvent(dynamic update) {
|
||||||
bool ok = update[0];
|
bool ok = update[0];
|
||||||
if (ok) {
|
if (ok) {
|
||||||
var data = update[1];
|
var data = update[1];
|
||||||
|
|
@ -51,16 +63,17 @@ class _HomePageState extends State<HomePage> {
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar("Error", "Update failed with message: ${update[1]}");
|
Get.snackbar("Error", "Update failed with message: ${update[1]}");
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
socket.on("updateNeeded", (data) {
|
void _onUpdateNeededEvent(dynamic data) {
|
||||||
socket.emit("getUpdate");
|
socket.emit("getUpdate");
|
||||||
});
|
}
|
||||||
|
|
||||||
socket.on("removeGameResponse", (data) => null);
|
void _onRemoveGameResponseEvent(dynamic data) {}
|
||||||
socket.on("createGameResponse", (data) => null);
|
|
||||||
|
|
||||||
socket.on("getUserDataResponse", (data) {
|
void _onCreateGameResponseEvent(dynamic data) {}
|
||||||
|
|
||||||
|
void _onGetUserDataResponseEvent(dynamic data) {
|
||||||
bool ok = data[0];
|
bool ok = data[0];
|
||||||
if (ok) {
|
if (ok) {
|
||||||
userData = UserData(
|
userData = UserData(
|
||||||
|
|
@ -70,10 +83,9 @@ class _HomePageState extends State<HomePage> {
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar("Error", "Failed to get user data:\n ${data[1]}");
|
Get.snackbar("Error", "Failed to get user data:\n ${data[1]}");
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
socket.emit("getUserData");
|
|
||||||
|
|
||||||
socket.on("joinGameResponse", (data) {
|
void onJoinGameResponseEvent(dynamic data) {
|
||||||
bool ok = data[0];
|
bool ok = data[0];
|
||||||
if (ok) {
|
if (ok) {
|
||||||
Get.put(authData);
|
Get.put(authData);
|
||||||
|
|
@ -89,20 +101,17 @@ class _HomePageState extends State<HomePage> {
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar("Request response", data[1]);
|
Get.snackbar("Request response", data[1]);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
socket.emit("getUpdate");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
socket.off("hello");
|
socket.off("hello", _onHelloEvent);
|
||||||
socket.off("update");
|
socket.off("update", _onUpdateEvent);
|
||||||
socket.off("updateNeeded");
|
socket.off("updateNeeded", _onUpdateNeededEvent);
|
||||||
socket.off("removeGameResponse");
|
socket.off("removeGameResponse", _onRemoveGameResponseEvent);
|
||||||
socket.off("createGameResponse");
|
socket.off("createGameResponse", _onCreateGameResponseEvent);
|
||||||
socket.off("getUserDataResponse");
|
socket.off("getUserDataResponse", _onGetUserDataResponseEvent);
|
||||||
socket.off("joinGameResponse");
|
socket.off("joinGameResponse", onJoinGameResponseEvent);
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue