fixed bug that prevented pilots and dispos from receiving socket events after disconnect
This commit is contained in:
@@ -23,13 +23,10 @@ export const useDispatchConnectionStore = create<ConnectionStore>((set) => ({
|
||||
new Promise((resolve) => {
|
||||
set({ status: "connecting", message: "" });
|
||||
dispatchSocket.auth = { uid };
|
||||
set({ selectedZone });
|
||||
set({ selectedZone, logoffTime });
|
||||
dispatchSocket.connect();
|
||||
|
||||
dispatchSocket.once("connect", () => {
|
||||
dispatchSocket.emit("connect-dispatch", {
|
||||
logoffTime,
|
||||
selectedZone,
|
||||
});
|
||||
resolve();
|
||||
});
|
||||
}),
|
||||
@@ -39,6 +36,12 @@ export const useDispatchConnectionStore = create<ConnectionStore>((set) => ({
|
||||
}));
|
||||
|
||||
dispatchSocket.on("connect", () => {
|
||||
const { logoffTime, selectedZone } = useDispatchConnectionStore.getState();
|
||||
|
||||
dispatchSocket.emit("connect-dispatch", {
|
||||
logoffTime,
|
||||
selectedZone,
|
||||
});
|
||||
useDispatchConnectionStore.setState({ status: "connected", message: "" });
|
||||
});
|
||||
|
||||
@@ -61,11 +64,4 @@ dispatchSocket.on("force-disconnect", (reason: string) => {
|
||||
});
|
||||
});
|
||||
|
||||
dispatchSocket.on("reconnect", () => {
|
||||
const { logoffTime, selectedZone } = useDispatchConnectionStore.getState();
|
||||
|
||||
dispatchSocket.emit("connect-dispatch", {
|
||||
logoffTime,
|
||||
selectedZone,
|
||||
});
|
||||
});
|
||||
dispatchSocket.on("reconnect", () => {});
|
||||
|
||||
@@ -7,6 +7,7 @@ import { useDmeStore } from "_store/pilot/dmeStore";
|
||||
interface ConnectionStore {
|
||||
status: "connected" | "disconnected" | "connecting" | "error";
|
||||
message: string;
|
||||
logoffTime: string;
|
||||
selectedStation: Station | null;
|
||||
connectedAircraft: ConnectedAircraft | null;
|
||||
activeMission:
|
||||
@@ -27,12 +28,18 @@ interface ConnectionStore {
|
||||
export const usePilotConnectionStore = create<ConnectionStore>((set) => ({
|
||||
status: "disconnected",
|
||||
message: "",
|
||||
logoffTime: "",
|
||||
selectedStation: null,
|
||||
connectedAircraft: null,
|
||||
activeMission: null,
|
||||
connect: async (uid, stationId, logoffTime, station, user) =>
|
||||
new Promise((resolve) => {
|
||||
set({ status: "connecting", message: "", selectedStation: station });
|
||||
set({
|
||||
status: "connecting",
|
||||
message: "",
|
||||
selectedStation: station,
|
||||
logoffTime,
|
||||
});
|
||||
|
||||
pilotSocket.auth = { uid };
|
||||
pilotSocket.connect();
|
||||
@@ -42,10 +49,7 @@ export const usePilotConnectionStore = create<ConnectionStore>((set) => ({
|
||||
station,
|
||||
user,
|
||||
});
|
||||
pilotSocket.emit("connect-pilot", {
|
||||
logoffTime,
|
||||
stationId,
|
||||
});
|
||||
|
||||
resolve();
|
||||
});
|
||||
}),
|
||||
@@ -55,8 +59,14 @@ export const usePilotConnectionStore = create<ConnectionStore>((set) => ({
|
||||
}));
|
||||
|
||||
pilotSocket.on("connect", () => {
|
||||
dispatchSocket.disconnect();
|
||||
usePilotConnectionStore.setState({ status: "connected", message: "" });
|
||||
const { logoffTime, selectedStation } = usePilotConnectionStore.getState();
|
||||
dispatchSocket.disconnect();
|
||||
|
||||
pilotSocket.emit("connect-pilot", {
|
||||
logoffTime,
|
||||
stationId: selectedStation?.id,
|
||||
});
|
||||
});
|
||||
|
||||
pilotSocket.on("connect_error", (err) => {
|
||||
|
||||
Reference in New Issue
Block a user