메신저 채팅관련해서 질문한번 드릴꼐요....
찬솔나라
제가 예전에 졸작으로 만들어논 메신저를 수정해 볼려 하는데요
네이트온처럼 JTree를 써서 접속한 사람들을 보여주고 더블클릭하면 채팅창이 뜨는데요..
1:1대화는 문제가 없는데 A라는 사람과 대화중 B라는 사람과 다른 대화를 할떄 채팅창은 나눠지는데 대화가 공유가 되네요...
어떤형식으로 나누어야 할지 조언좀 부탁드려요~
-
피어나
음..일단 제가 했던 방식을 설명 드리자면..
from자신의Net주소/fromto상대방의주소/tomsg보낼내용/
위와 같은 형식의 프레임을 만들어서 전송하고, 받고 그랬습니다.
위와 같은 형식을 쓸 경우 결정적인게 멀티캐스팅인데요..
프로그램 코드에서 구현하기가 상당히 귀찮습니다..ㅡㅡ;;
힘내시길..ㅎㅎㅎ -
일진누나
멀티채팅인 경우는 멀티 스레드를 생성하고 스레드별로 키값을 저장한다음(이 키가 유저를 구분하는 primary key입니다.) 채팅하고자 하는 유저에게 응답을 하는 겁니다.
쉽게 말하면 특정 키와 매칭되는 스레드에게 메시지를 날린다고 생각하면 됩니다.
일종의 트릭인데.. 소켓은 모든 유저가 공유합니다. 대신 응답을 할때 특정 키에게만 응답하도록 구현하면 마치 1:1대화를 하는 것처럼 됩니다. ^^ -
후유
단순하게 생각하면 다른 소켓을 연결해서 대화 하면 될꺼 같은데요.
설계에 따라 틀리겠지만 지금 설계를 느낌으로 생각하면 소켓을 하나 더 생성해서
다른 분과 대화 하면 될꺼 같은데요.
다른 방법도 있겠지만 이방법이 수정을 제일 적게 하는 방법같은데요. -
초월
그냥 생각나는대로 끄적끄적....
누구에게 보낼 건지에 대한 정보가 필요하겠군요
방법은 쓰레드를 사용할 수도 있고, 스트림을 아예 따로 쓸수도 있고,아니면 전송정보에 받는 사람 정보를
포함하여 보내고, 서버쪽에서 들어온 정보를 분석하여 처리해서 보내는 방법이 있을 수 있겠네요...
될지 안될지는 잘 모르겠지만....가능은 할 것 같은데..헤헷..