const stompClient = new Client({
brokerURL: 'URL을 채워주세용', // STOMP 서버 URL
debug: (str) => {
console.log(str);
},
onConnect: () => {
console.log(' 연결 됐어요옹!!! '); // onConnect 내부 코드가 안돌음
},
onDisconnect: () => {
console.log('웹소켓 연결이 끊어졌어용');
},
});
React Native 환경에서 debug 내 console.log()에선 연결이 됐다고 하는데, onConnect 내 console.log()는 출력이 되지 않는다.
AWS에서 서버 로그를 분석해봤을때 웹소켓 연결이 된 것은 틀림 없었다. 그렇다면 뭔가 onConnect만 안되는 이유가 있을텐데 이 단순한 코드에 무엇인 문제인지 몰랐다.
그래서 리액트 네이티브 환경이 아닌 리액트 환경에서 진행해봤다. 결과는 연결 완료. onConnect 내의 콘솔이 출력된다.
그렇다면 리액트 네이티브의 문제로 판단하였고, 한글 자료론 도저히 방법이 없다고 판단하여 Stack OverFlow와 Github Issue를 미친듯이 검색했다.
원인은 다음과 같다.
const stompClient = new Client({
brokerURL: 'URL을 채워주세용',
forceBinaryWSFrames: true, // 해당 코드를 추가해주기!
appendMissingNULLonIncoming: true, // 해당 코드를 추가해주기!
debug: (str) => {
console.log(str);
},
onConnect: () => {
console.log(' 연결 됐어요옹!!! '); // 정상 작동
},
onDisconnect: () => {
console.log('웹소켓 연결이 끊어졌어용');
},
});
리액트 네이티브가 만악의 근원이다 :(