ibex
10
2019-12-02 02:26:08
5
1598

자바로 메신저기능 구현


안녕하세요 자바로 메신저 구현 과제를 진행 중인 컴퓨터공학도 입니다.

특수 기능으로 

메모장을 동시에 다른 사람이 사용하게 하는 기능을 넣을 수 있을까요?

가능하다면 어떤걸 사용해야 할까요


ex> 1p가 안녕하세요를 입력한다 -> 동시에 2p가 backspace를 누르면 입력 됨과 동시에 지워진다

0
  • 댓글 5

  • 244
    2019-12-02 06:47:11

    소켓통신을 사용하면 되겠죵

    클라이언트에서 입력받으면 서버로 보내줘서 서버에서 뿌려주는 방식...

  • 욥욥욥
    941
    2019-12-02 09:21:45

    구글 드라이브 처럼 하시려는건가요?

    쉽지않지만 학생 입장에서 고민해봐도 괜찮을듯 하네요 ㅎㅎ

    오픈소스 하나 찍어드릴게요

    https://firepad.io

    이것도 몇가지 오픈소스를 사용한거니 참고하세요


  • youngyoung
    2k
    2019-12-02 09:22:11

    우와 예전에 학부시절에 페어프로그래밍 구현한다고 저렇게 했던게 새록새록 기억나네요

    -1
  • yeori
    2k
    2019-12-02 10:29:54

    자바로 하신다면 jtextarea를 대상으로 실시간 참여자 편집을 구현하실텐데 크게 두 부분에 집중해야 합니다

    1) Document 객체

    2) 편집 프로토콜 설계

    모델 객체라고 해서 순수하게 데이터만 들고 있는 놈이 UI컴포넌트마다 있습니다. 텍스트컴포넌트 계열은 그 안에 Document 인터페이스 타입의 객체가 있습이다.

    여기에 프로그래밍으로 텍스트를 집어넣거나 빼면 자동으로 화면이 갱신됩니다. 인터페이스는 StringBuilder와 유사합니다.

    더 중요한게 프로토콜 설계입니다

    1) 커서의 위치

    2) selection 정보(start, end 까지 선택됨)

    ...를 추적해야 하고, 이 두가지 상태마다 키를 입력할때

    1) 위치 offset에서 문자열 s 입력

    2) 위치 offset에서 length 사이의 문자열 삭제

    3) 위의 두가지 이벤트의 composition

    으로 이벤트를 서버로 날립니다.

    각 클라이언트는 이벤트를 받아서 Document 객체를 수정합니다

    간단하게 요약했지만 자잘하게 처리해야할게 많습니다. 특히 사용자가 텍스트영역에서 키보드를 두들길때 곧바로 Document에 반영되면 안됩니다.

    키보드 입력은 적절한 이벤트로 추상화해서 서버로 날리고, 서버에서 내려받은 이벤트를 document 객체에 반영해야 합니다.

    한마디로 UI 컴포넌트에서 실행되는 텔넷 character mode 입니다.

  • ibex
    10
    2019-12-03 21:47:03

    막막해서 주저리 주저리 써본 글인데

    이렇게 알려주시다니

    진심으로 많은 도움이 되었습니다

    글 남겨주신 분들 모두 감사드리고

    들숨엔 재력, 날숨엔 건강이 들어오길 바라겠습니다 :)

  • 로그인을 하시면 댓글을 등록할 수 있습니다.