config nginx to fix sse not found bug
This commit is contained in:
parent
075bcb40ed
commit
c9726d00a0
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -4,7 +4,7 @@ dist
|
||||||
dist-ssr
|
dist-ssr
|
||||||
*.local
|
*.local
|
||||||
count.txt
|
count.txt
|
||||||
.env
|
.env*
|
||||||
.nitro
|
.nitro
|
||||||
.tanstack
|
.tanstack
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
|
@ -25,7 +25,7 @@ server {
|
||||||
}
|
}
|
||||||
|
|
||||||
location /api/ {
|
location /api/ {
|
||||||
proxy_pass http://backend_api;
|
proxy_pass http://backend/;
|
||||||
|
|
||||||
# CORS headers
|
# CORS headers
|
||||||
add_header 'Access-Control-Allow-Origin' '*' always;
|
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||||
|
@ -36,4 +36,14 @@ server {
|
||||||
return 204;
|
return 204;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
location /api/Sse/events {
|
||||||
|
proxy_pass http://backend/api/Sse/events;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
|
||||||
|
# cần thiết cho SSE
|
||||||
|
proxy_set_header Connection '';
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_cache off;
|
||||||
|
proxy_read_timeout 1h;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,38 +1,22 @@
|
||||||
const hostname = window.location.hostname;
|
const isDev = import.meta.env.MODE === "development";
|
||||||
console.log("Current hostname:", hostname);
|
|
||||||
var tailscaleIP = import.meta.env.VITE_IP_TAILSCALE;
|
|
||||||
var localIP = import.meta.env.VITE_IP_LOCAL;
|
|
||||||
|
|
||||||
let API_MODE: "tailscale" | "local" | "ip";
|
export const BASE_URL = isDev
|
||||||
|
? import.meta.env.VITE_API_URL_DEV
|
||||||
if (hostname.includes(tailscaleIP)) {
|
: "/api";
|
||||||
API_MODE = "tailscale";
|
|
||||||
} else if (hostname === localIP) {
|
|
||||||
API_MODE = "local";
|
|
||||||
} else {
|
|
||||||
API_MODE = "ip";
|
|
||||||
}
|
|
||||||
|
|
||||||
export const API_ROOT = {
|
|
||||||
tailscale: import.meta.env.VITE_API_URL_TAILSCALE,
|
|
||||||
local: import.meta.env.VITE_API_URL_LOCAL,
|
|
||||||
ip: import.meta.env.VITE_API_URL_IP,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const BASE_URL = API_ROOT[API_MODE];
|
|
||||||
|
|
||||||
export const API_ENDPOINTS = {
|
export const API_ENDPOINTS = {
|
||||||
APP_VERSION: {
|
APP_VERSION: {
|
||||||
GET_VERSION: `/AppVersion/version`,
|
GET_VERSION: `${BASE_URL}/AppVersion/version`,
|
||||||
UPLOAD: `/AppVersion/upload`,
|
UPLOAD: `${BASE_URL}/AppVersion/upload`,
|
||||||
},
|
},
|
||||||
DEVICE_COMM: {
|
DEVICE_COMM: {
|
||||||
UPDATE_AGENT: `/DeviceComm/updateagent`,
|
UPDATE_AGENT: `${BASE_URL}/DeviceComm/updateagent`,
|
||||||
GET_ROOM_LIST: `/DeviceComm/rooms`,
|
GET_ROOM_LIST: `${BASE_URL}/DeviceComm/rooms`,
|
||||||
GET_DEVICE_FROM_ROOM: (roomName: string) => `/DeviceComm/room/${roomName}`,
|
GET_DEVICE_FROM_ROOM: (roomName: string) =>
|
||||||
|
`${BASE_URL}/DeviceComm/room/${roomName}`,
|
||||||
},
|
},
|
||||||
SSE_EVENTS: {
|
SSE_EVENTS: {
|
||||||
DEVICE_ONLINE: `/Sse/events/onlineDevices`,
|
DEVICE_ONLINE: `${BASE_URL}/Sse/events/onlineDevices`,
|
||||||
DEVICE_OFFLINE: `/Sse/events/offlineDevices`,
|
DEVICE_OFFLINE: `${BASE_URL}/Sse/events/offlineDevices`,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,8 +16,8 @@ interface UseDeviceEventsOptions {
|
||||||
|
|
||||||
export function useDeviceEvents(options: UseDeviceEventsOptions) {
|
export function useDeviceEvents(options: UseDeviceEventsOptions) {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const onlineES = new EventSource(`${BASE_URL}${API_ENDPOINTS.SSE_EVENTS.DEVICE_ONLINE}`);
|
const onlineES = new EventSource(API_ENDPOINTS.SSE_EVENTS.DEVICE_ONLINE);
|
||||||
const offlineES = new EventSource(`${BASE_URL}${API_ENDPOINTS.SSE_EVENTS.DEVICE_OFFLINE}`);
|
const offlineES = new EventSource(API_ENDPOINTS.SSE_EVENTS.DEVICE_OFFLINE);
|
||||||
|
|
||||||
onlineES.addEventListener("online", (event) => {
|
onlineES.addEventListener("online", (event) => {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -45,7 +45,13 @@ function RoomComponent() {
|
||||||
queryClient.setQueryData(["rooms"], (oldRooms: any[] = []) =>
|
queryClient.setQueryData(["rooms"], (oldRooms: any[] = []) =>
|
||||||
oldRooms.map((r) =>
|
oldRooms.map((r) =>
|
||||||
r.name === room
|
r.name === room
|
||||||
? { ...r, offlineCount: Math.max((r.offlineCount || 0) - 1, 0) }
|
? {
|
||||||
|
...r,
|
||||||
|
numberOfOfflineDevices: Math.max(
|
||||||
|
(r.numberOfOfflineDevices || 0) - 1,
|
||||||
|
0
|
||||||
|
),
|
||||||
|
}
|
||||||
: r
|
: r
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -54,7 +60,10 @@ function RoomComponent() {
|
||||||
queryClient.setQueryData(["rooms"], (oldRooms: any[] = []) =>
|
queryClient.setQueryData(["rooms"], (oldRooms: any[] = []) =>
|
||||||
oldRooms.map((r) =>
|
oldRooms.map((r) =>
|
||||||
r.name === room
|
r.name === room
|
||||||
? { ...r, offlineCount: (r.offlineCount || 0) + 1 }
|
? {
|
||||||
|
...r,
|
||||||
|
numberOfOfflineDevices: (r.numberOfOfflineDevices || 0) + 1,
|
||||||
|
}
|
||||||
: r
|
: r
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -76,8 +85,7 @@ function RoomComponent() {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: "Thiết bị offline",
|
header: "Thiết bị offline",
|
||||||
accessorKey: "offlineCount",
|
accessorKey: "numberOfOfflineDevices",
|
||||||
cell: ({ getValue }) => getValue() || 0,
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user