removed user request and added user connection init to ws

main
alex 2023-04-21 11:56:23 +02:00
parent 5e36633f02
commit 1a29502b69
2 changed files with 24 additions and 27 deletions

View File

@ -17,29 +17,6 @@ export default function App() {
const { userSession, setUserSession } = UseUserSession(); const { userSession, setUserSession } = UseUserSession();
const [userData, setUserData] = useState(ClientUserDataContextPreview); const [userData, setUserData] = useState(ClientUserDataContextPreview);
useEffect(() => {
if (!userSession) return;
fetch(Constants.API_ADDRESS + "/user", {
method: "GET",
headers: {
"Content-Type": "application/json",
"X-Authorization": userSession,
},
})
.then((res) => {
if (res.status === 200) {
return res.json();
}
setUserSession();
return Promise.reject(res.status);
})
.then((data) => setUserData(data))
.catch(console.error);
}, []);
if (!userSession) { if (!userSession) {
return <Login setUserSession={setUserSession} />; return <Login setUserSession={setUserSession} />;
} }
@ -47,7 +24,11 @@ export default function App() {
return ( return (
<Layout style={{ minHeight: "100vh" }}> <Layout style={{ minHeight: "100vh" }}>
<ClientUserDataContext.Provider value={userData}> <ClientUserDataContext.Provider value={userData}>
<WebSocketProvider userSession={userSession}> <WebSocketProvider
userSession={userSession}
setUserSession={setUserSession}
setUserData={setUserData}
>
<SideMenu setUserSession={setUserSession}></SideMenu> <SideMenu setUserSession={setUserSession}></SideMenu>
<PageContent></PageContent> <PageContent></PageContent>
</WebSocketProvider> </WebSocketProvider>

View File

@ -60,10 +60,16 @@ export const WebSocketTestContext = createContext(webSocketContextPreview);
// commands received from the backend server // commands received from the backend server
const ReceivedMessagesCommands = { const ReceivedMessagesCommands = {
UpdateConnectedUsers: 1, InitUserSocketConnection: 1,
UpdateConnectedUsers: 2,
}; };
export function WebSocketProvider({ children, userSession }) { export function WebSocketProvider({
children,
userSession,
setUserSession,
setUserData,
}) {
const [isReady, setIsReady] = useState(false); const [isReady, setIsReady] = useState(false);
const [connectionBadgeStatus, setConnectionBadgeStatus] = useState("error"); const [connectionBadgeStatus, setConnectionBadgeStatus] = useState("error");
const [connectedWebSocketUsersCount, setConnectedWebSocketUsersCount] = const [connectedWebSocketUsersCount, setConnectedWebSocketUsersCount] =
@ -88,6 +94,9 @@ export function WebSocketProvider({ children, userSession }) {
const body = data.Body; const body = data.Body;
switch (cmd) { switch (cmd) {
case ReceivedMessagesCommands.InitUserSocketConnection:
setUserData(body);
break;
case ReceivedMessagesCommands.UpdateConnectedUsers: case ReceivedMessagesCommands.UpdateConnectedUsers:
setConnectedWebSocketUsersCount(body); setConnectedWebSocketUsersCount(body);
break; break;
@ -97,7 +106,14 @@ export function WebSocketProvider({ children, userSession }) {
socket.onclose = (event) => { socket.onclose = (event) => {
setIsReady(false); setIsReady(false);
setConnectionBadgeStatus("error"); setConnectionBadgeStatus("error");
console.log("closed", event.reason.code); console.log("closed", event);
// custom code defined by the backend server
if (event.code === 4001) {
setUserSession();
window.location.href = "/";
return;
}
if (event.reason.code === 1005) return; if (event.reason.code === 1005) return;