removed user request and added user connection init to ws
parent
5e36633f02
commit
1a29502b69
29
src/App.js
29
src/App.js
|
@ -17,29 +17,6 @@ export default function App() {
|
|||
const { userSession, setUserSession } = UseUserSession();
|
||||
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) {
|
||||
return <Login setUserSession={setUserSession} />;
|
||||
}
|
||||
|
@ -47,7 +24,11 @@ export default function App() {
|
|||
return (
|
||||
<Layout style={{ minHeight: "100vh" }}>
|
||||
<ClientUserDataContext.Provider value={userData}>
|
||||
<WebSocketProvider userSession={userSession}>
|
||||
<WebSocketProvider
|
||||
userSession={userSession}
|
||||
setUserSession={setUserSession}
|
||||
setUserData={setUserData}
|
||||
>
|
||||
<SideMenu setUserSession={setUserSession}></SideMenu>
|
||||
<PageContent></PageContent>
|
||||
</WebSocketProvider>
|
||||
|
|
22
src/utils.js
22
src/utils.js
|
@ -60,10 +60,16 @@ export const WebSocketTestContext = createContext(webSocketContextPreview);
|
|||
|
||||
// commands received from the backend server
|
||||
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 [connectionBadgeStatus, setConnectionBadgeStatus] = useState("error");
|
||||
const [connectedWebSocketUsersCount, setConnectedWebSocketUsersCount] =
|
||||
|
@ -88,6 +94,9 @@ export function WebSocketProvider({ children, userSession }) {
|
|||
const body = data.Body;
|
||||
|
||||
switch (cmd) {
|
||||
case ReceivedMessagesCommands.InitUserSocketConnection:
|
||||
setUserData(body);
|
||||
break;
|
||||
case ReceivedMessagesCommands.UpdateConnectedUsers:
|
||||
setConnectedWebSocketUsersCount(body);
|
||||
break;
|
||||
|
@ -97,7 +106,14 @@ export function WebSocketProvider({ children, userSession }) {
|
|||
socket.onclose = (event) => {
|
||||
setIsReady(false);
|
||||
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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue