nodejs websocket으로 서버 열기 시작

Hotaek Han·2022년 12월 13일
0

드디어 nodejs의 websocket으로 서버를 만들고 gamemaker와 연동하는데 성공했다.

node 입문했다고 글 쓴게 11월 28일이니까 보름 정도 지났네.. 많이 걸린 것 같기도 하고 적게 걸린 것 같기도 하다.

역시 인증 가야지


server.js 코드다. 터미널에서 node server.js로 실행해줬다. 3000번 포트에서 대기중이다.

게임메이커로 가자.

network_create_socket() 함수가 제공된다. 이거로 소켓을 만들고

network_connect_raw_async()로 서버에 연결시킨다. ws라는 프로토콜이 눈에 들어온다.

게임메이커에서 제공하는 raw 계열의 함수들은 지금 nodejs처럼 외부에서 서버를 열 때 사용하는 함수이다.


스페이스 바를 눌렀을 때 발생하는 함수이다.

show_debug_message()로 연결되었는지 출력한다.
1kb 버퍼를 생성하고 "1"이라는 문자열을 입력한다.
network_send_raw() 함수로 버퍼를 서버로 보낸다.

이제 서버의 출력 결과만 보면 된다.


새로운 플레이어가 접속했음을 인지했고, 1과 2를 받아왔다.

12라고 뜨긴 하지만 수정할 수 있을 것 같다.

드디어 게임메이커와 서버의 연결에 성공했다.....ㅠㅠ

오랜만에 카페에서 도움을 받았다. nodejs가 게임메이커 클라이언트의 접속을 인식하는 것을 보고 흥분해서 데이터를 전송시키려는데 자꾸 안되길래 오랜만에 질문했는데 한 시간도 안되어서 답변이 두명에게나 왔다. 카페찬스 굿....


추가로 서버에서 게임메이커로 데이터를 전송하는 코드도 작성해보았다.


그냥 클라한테 메시지 받았을 때 ws.send("test");가 실행된다.

서버에서 데이터를 전송하면 클라는 게임메이커에서 기본으로 제공하는 Async 이벤트가 실행된다. received_packet()은 사용자 정의 함수로 받은 데이터를 처리한다.


지금은 그냥 받은 데이터를 출력하도록 했다.

성공~~~ㅎ후후

0개의 댓글