소켓오류. 도대체 토스 서버에서는 무슨 일이 일어나는 걸까? 토스 개발자 커뮤니티 무용론?

#문제 요약 : 현재 토스 서버에서만(!) socket.io 무응답 오류 발생.

  • 모든 환경에서 웹의 기능들은 잘 되지만, 토스 서버에만 제출하면 socket.io 관련 기능만 안됨.

- 내 맥북에서 서버를 돌리고 웹이나 실기기의 토스 미니 앱으로 접속하면 다 잘 됨.

- 웹 서버에서 배포한 경우도 잘 되고, 앱(WebView)으로 패키징하여 접속해도 다 잘 됨.

- 모든 코드는 동일. 오직 토스 서버 환경에 업로드하여 배포한 경우에만 socket.io 가 무응답하는 상황. (도대체 토스 서버에서는 무슨 일이 일어나는 걸까?)

실기기의 샌드박스 앱(미니앱)에서는 모든 기능이 잘 되는데, 토스 앱에서는 socket.io 서버 기능만 안 됩니다. 심지어 토스 앱으로부터 아무런 오류 로그도 빼 올 수 없는 상황입니다.

샌드박스 앱 vs 토스 앱의 어떤 차이가 socket.io 서버 기능을 on/off하는 걸까요?

샌드박스 앱과 토스 앱 환경이 일치하게 해주시던지, 아니면 토스 앱에서만 발생하는 오류 로그를 확인하는 방법을 알려주시면 좋겠습니다.

공모전 마감이 눈 앞인데, 토스 개발자 커뮤니티에 올려봤자 몇주째 이런 중요한 문제에 아무런 피드백도 없네요… 답하기 쉬운 간단한 문제만 답해주는 건가요? 여기 몇가지 문의 글 올려보고 답이 없어서 이제는 별 기대를 하지 않게 되었지만 그냥 기록으로 남겨봅니다.

appName 한번 공유주시겠어요?

따로 저희 측에 오류 잡힌건 없어보이고, 오류 디버깅을 하기 위해 web에 직접 sentry 설치하셔서 디버깅이 가능하실 거 같습니다.

추가로 더 파악하시고 싶은 것이 있으시면 채널톡으로 자세한 정보 남겨주시면 좀 더 확인해볼게요.

작성한 대로, 일반 웹과 구글 플레이스토어 에서는 모든 기능이 순조롭게 잘 작동하기에 오류 메세지가 존재하지 않고, 토스에 제출했더니 오류가 발생한다고 심사 거부사유에 적혀있는데 정작 저는 토스서버의 백엔드 로그를 확인할 길이 없으니 오류가 발생했다는 주장만 볼 수 있고, 제 웹사이트에서는 아무 오류 없이 너무 잘 작동하고 있음에도 심사는 통과 안되는 상황입니다. 저와 친구들은 다 잘 플레이하고 있는데 도대체 왜 토스 서버에서는 안되는 건지ㅠ 공모전 마감일은 다가오고 답답하네요…

안녕하세요. 토스 임직원입니다.

업로드해주신 번들 확인해보니, 소켓 connect시에 아무 설정도 안되어 있는 것으로 보이고, 따라서 라이브러리 기본값이 사용되고 있네요. 기본값은 window.location.origin + “/socket.io” 입니다.

로컬에서는 웹 서버와 소켓 서버 도메인이 똑같이 localhost이기에 잘 동작할 수 있지만, 토스앱 환경에서는 웹 도메인이 달라지기 때문에 배포된 소켓 서버의 URL로 잘 설정 부탁드려요.

토스앱의 웹 도메인은 여기서 확인하실 수 있어요. 참고하셔서 서버의 CORS 설정도 부탁드립니다.

문제 해결에 도움이 되시면 좋겠습니다.

3개의 좋아요