mvc 패턴으로 만든거고 대략 서버단 코드 200줄. 클라이언트단에 스크립트 코드는 50줄가량? 




대충 로직은

<클라이언트, 뷰페이지 영역>


방이름과 유저이름을 입력해서 파람값을 서버로 넘김 -> 컨트롤러를 거쳐서 -> 체팅방이 있는 뷰페이지로 이동후 -> var websocket = new websocket(ws://ip:host/)해주는 스크립트로 진입-> 서버단



<서버단>


static으로 set<session> 을 담고 그걸 한번 더 map에 담아줌. 


그리고 싱크로나이즈 시켜서 람다식 stream().foreach()x-> {}로  빼옴. 자바코드로 비유하면 while()이터레이터. 


map에다 담은 set<session>을 다시 해당 방으로 찾는건 엔드포인트에 걸어놓은 파람 값을 받고 세션.프로퍼티에 put()으로 넣엇다가 get()으로 찾는거고.



각설하고 로직 자체는 존나 쉬운데, 다중 방구조 만드는데 2주 조금 더걸렸다........




들어간 기술들의 핵심은


물론 collector를 얼마나 응용 가능한가 정도?


뭐 리퀘스트/리스폰스 개념이라던가, json이라던가 자잘한 기술들은 재쳐두고. 



기능은


방만들기


(각기 다른 방에 입장 후) n대 n 브로드케스팅


유저리스트, 


유저 메세지.


사진 업로딩.



모든게 실시간으로 처리됨





물론, 쓰레드 자원의 비용처리 같은건 고려하지않았다..


존나  들어갓다 나갓다 하면 뻑날거같은데 자세히 몰랑