본문 바로가기
IT 실무

[Unitalk.xyz] nodejs를 이용한 랜덤채팅 프로젝트

by 지식id 2016. 1. 4.
반응형

http://unitalk.xyz/


nodejs, websocket(module), php, mysql을 이용해 만든 간단한 랜덤채팅 프로그램입니다.

연습삼아 만들어본게 제일 크구요, 이런 저런 사람이랑 대화하는걸 좋아하는데 기존의 랜덤채팅이 너무 비매너, 광고, 변태들로 난무하는것 같아 깨끗하게 운영되려면 어떻게 하면 좋을까 싶어서 만들어본 실험적인 프로젝트입니다.


기존의 랜덤채팅과 다른게 있다면 성별을 선택해서 진행된다는 것입니다.

본인의 성별, 원하는 상대의 성별을 선택하면 그에 맞는 상대와 연결이 됩니다. 물론 여자를 원하는 남자는 많고 남자를 원하는 여자는 적기 때문에 과부화된 쪽에선 순서를 기다려야 합니다. 이 대기열 시스템은 Queue를 통해 구현되었으며 자신이 얼마나 기다려야 하는지도 화면에 보여주고 있습니다.


그리고 신고시스템을 도입하였습니다.

사후관리형 자율신고 시스템입니다. 비매너 대화상대가 있다면 간단히 신고 버튼만 눌러주면 해당 사용자는 에티켓점수가 차감되게 됩니다. 이 점수는 매 대화시 마다 조금씩 회복 되지만 신고를 여러번 당하여 에티켓점수가 0이 되면 차단되게 됩니다. 신고 내역을 DB에 저장하여 광고 Bot이나 자극적인 대화만을 원하는 불량 사용자는 영구차단시킬 계획입니다.


기타 사항들

 - 완벽한 호환은 아니지만 반응형 웹을 이용하여 작은 화면의 디바이스에서도 채팅정도는 가능하도록 구현하였습니다.

 - 기본적인 사진 전송까지는 가능하도록 구현하였습니다.

 - 사진 전송 프로세스 또한 HTML5표준을 이용하여 모바일에서도 앨범에 있는 사진을 올리거나 바로 찍어서 올리는 동작이 가능합니다.

 - 보안을 위해 IP가 노출되지 않고, 오직 접속시 할당된 고유번호만을 이용해 통신되도록 구현하였습니다.


full sorcecode는 공개하지 않습니다. 아직 공개할만큼의 수준은 되지 못합니다. 일단은 어거지로 동작만 되게 만들어 두었으며 시간을 두고 테스트과정을 겪으면서 정리가 좀 된다면 Git에 올릴 예정입니다.


아직 수많은 버그가 존재하고 있습니다.. 서버는 수시로 죽습니다. 서버는 최대한 살려서 열어둘테니 한번씩 들어와서 테스트 해주세요!

대화를 할만큼 사용자가 접속해 있진 않겠지만 한 컴퓨터에서 여러개의 접속이 가능하도록 해 두었습니다. 브라우저 여러개 열어서 테스트 해보셔도 됩니다. 버그, 질문, 건의사항이 있다면 댓글로 남겨주시면 성실하게 대응하겠습니다.

반응형

댓글