저번주부터 .net core API + nuxt3 로 개발된 사이트를 Blazor Web App(SSR)로
마이그레이션 하는중인데 몇가지 문제가 있었습니다.
OnInitialized, OnParametersSet 이벤트가 두번씩 호출됨
서버에서 1번 렌더링, 클라이언트에서 1번 렌더링으로 두번 호출됨
하지만 OnInitialized, OnParametersSet 함수 내부에서 서버인지 클라이언트 구분 플래그가 없음.
이것때문에 함수를 사용 못함.
해결방법 : prerendered: false로 하면 되지만 SPA로 바뀜
cloudflare에 호스팅 불가
릴리즈 된지 얼마 안되어 기다리면 되겠지만 이게 가장 큰 문제임.
호스팅 업체를 azure로 바꿔야 되는데 2~3일 잠깐 테스트하는데도 비용이 좀 나오네요.
스마트폰 sleep 모드에서 wakeup 될때 서버와 SignalR 통신이 끊겨 아래와 같은 화면이
우선 답변 감사드립니다.
.net core API + nuxt3 로 개발한 이유가
백엔드는 C#, 프론트엔드는 (SSR+SPA) 이 두가지 이유 때문이었고
3티어로 바꾸면 nuxt3에서 Blazor Webassemble로 바꾸는 의미가 없어 보이네요.
.NET8에 Blazor WebApp(SSR + 풀스택) 릴리즈를 보고 환호 했던거 같아요.
말씀하신데로 API와 상호작용 하는데 필요한 여러가지(DTO, Controller) 것들이
없어도 되다 보니 저한테는 요 며칠 신세계였습니다
다시는 javascript framework로 돌아갈 일이 없을거 같지만.
1, 2번 어떻게 해결한다 치더라도 3번이 젤 문제입니다.ㅠ
답변 감사합니다.
저도 이미 확인했던 부분인데 여러 상황 테스트 해본 결과 비정상 동작하는 부분이 있었어요.
CASE 1 휴대폰이 비행모드(인터넷 끊김)가 될때 →
브라우저에서 “No internet” 경고창이 뜨고 온라인이 되면 자동으로 새로고침 (정상)
CASE 2 서버가 종료됐을 때
브라우저에서 " 페이지에 연결할 수 없습니다" 경고창이 뜨고 사용자가 수동으로 새로고침 (정상)
CASE 3 폰 sleep 모드에서 wake up 됐을때(이게 문제입니다)
짧은(대략 1분이내) sleep 에서는 정상적인 동작이지만
대략 1분 이상 sleep에 있다가 wake up 되면 offline이 되면서 사이트는 멀쩡해 보인다는 겁니다.
저는 이게 문제가 될거라고 보는데 사용자가 Offline을 봤으면 “새로고침 해야겠다” 라고
인지를 하겠지만 만약 못봤으면…
사이트는 정상으로 보이는데 버튼들은 작동을 안할테니
유저들은 “사이트가 이상하다” 라고 생각하고 이탈할 우려가 있어서요.
boot.js 에서 Offline 관련 이벤트도 없고, 어디를 어떻게 수정해야될지 감도 안오는 상태 입니다.
저도 상기 문제들로 인해서 골치가 많이 아팠습니다.
결론적으로 이래나 저래나 wasm+api로 가야한다는 결론을 내리고
마이그레이션 중인데 이것 또한 정말 손이 많이 가네요.
제가 보기에 아직까지도 blazor는 명확한 기준과 방향성이 없는 상태같네요…
server에서 연결 끊김 메시지에 대해 약간의 충격 완화 장치(?)를 이것저것 시도해보았으나 perfect하지 않은 관계로 포기했구요.
blazor의 생명주기 자체가 그렇다지만, 아무래도 정적인 웹페이지에서 지속적인 통신을 한다는 개념은 저도 아직까지 납득을 못하고 있습니다.
에이~~ 설마 이걸 보완하는게 없을까?? 했는데 8.0이 출시된 아직까지도 없네요…