node.js + ws 서버를 돌리고
Unity 에서는 WebSocketSharp.WebSocket 을 사용했는데 이게 https 랑 통신이 안되는 문제를 발견하였습니다.
잘 안잡혀서 아예 방향을 바꿨습니다.
node + socket.io 서버와
Unity 에 사용할 것으로 SocketIOUnity 이런걸 찾아서 사용했는데 통신 성공했습니다.
github 링크:
https://github.com/itisnajim/SocketIOUnity
에디터 빌드후에 다 잘되는거 확인했습니다.
Unity 에서 WebSocketSharp.WebSocket 사용할때에는
ws:// 나 wss:// 를 주소에 넣었는데
이번껀 http:// 나 https:// 주소를 넣는군요
유니티에서 사용방법은 코드르 다운 받으시고
유니티 프로젝트내에 아무 폴더에 압축을 푸시면 됩니다.
안쓰는 파일이 많이 포함되있긴한데 정리하지 않고 그냥 두었습니다.
/Assets
/Scripts
/SocketIOUnity-main : 이폴더에 압축 해제
코드에러는 안나고 바로 사용할 수 있었습니다.
발견한 문제가 조금 있습니다.
socket.OnAnyInUnityThread((name, response) => {
// 받은건 이 이벤트로 들어옵니다.
});
에디터에선 다른 이벤트는 안되고 OnAnyInUnityThread 요것만 동작합니다.
그래서 서버에서 접속하자마자 통신을 보내게 했습니다.
io.on("connection", (socket) => {
console.log("connected");
socket.emit("message", "connected"); // <- 바로 보내서 접속 됨을 알림
(생략)
끊겼는지도 인지가 안되서
자주 통신을 하고 응답이 일정시간 오지 않으면 끊긴것으로 처리했습니다.
이런식으로 처리하면 에디터랑 빌드한 결과랑 일관성을 유지할 수 있을 것 같습니다.