Multi Network 설계
jjuiddong
Multi Network를 하는 서버가 처음 실행되어서 하는 작업들을 나열해보았다.
초기화
- connect parent server
- login
- send p2p link, input/output link config data
p2p connection
- p2pS 로 등록된 서버에게 접속한다. p2pC로 등록된 서버가 있다면 자신이 p2p 서버임을 뜻한다.
- request p2p link infomation ip, port
- connect p2p link
server bind
- input link 에 속하지 않으면서 output link 가 되는 그룹을 위해 서버를 생성 output link 갯수 만큼 서버를 생성한다.
- requstBindInnerPort, connectionType(output link item) -> 요청
- NetGroupController(Server) 생성 -> Bind 시도
- ReqSubConnectionBindComplete, connectionType(output link item)
client connection
- input link 에 등록된 server그룹에게 Client로 접속한다.
- ReqServerConnectionInfoList, input link 에 등록된 svrType
- NetGroupController(client) 생성 -> Connection 시도
- ReqSubConnectionConnectComplete, connectionType(input link item)
매인서버 실행
- input link 나 output link를 소유한 서버타입은 클라이언트를 받기위해서 서버를 실행시킨다.
- requestBindOuterPort, connectionType(client) -> 요청
- NetGroupController(server) 생성 -> Bind 시도
- ReqSubConnectionBindComplete, connectionType(client)
- p2pC 로 등록된 서버들이 있다면 자신은 p2p 서버로 실행된다.
- 매인서버는 자신이 p2p 서버이든, input link를 소유하고 있든 상관없이 항상 실행된다.
- NetGroupController 에서 생성한 client/Server 는 하나의 쓰레드에서 관리하게 해야한다.