>백엔드 개발 >Golang >고랑잎을 많이 사용하나요?

고랑잎을 많이 사용하나요?

(*-*)浩
(*-*)浩원래의
2019-12-13 13:03:583167검색

고랑잎을 많이 사용하나요?

Leaf는 개발 효율성과 실행 효율성을 모두 강조하는 Go 언어(golang)로 작성된 오픈소스 게임 서버 프레임워크입니다. Leaf는 H5(HTML5) 게임 서버를 비롯한 다양한 게임 서버 개발에 적합합니다.

Leaf의 초점:                                               (권장 학습: go)

좋은 사용자 경험. Leaf는 항상 최대한 간단하고 사용하기 쉬운 인터페이스를 제공하여 개발 효율성과 안정성을 최대한 향상시킵니다. Leaf는 작동 중 오류를 복구하고 충돌을 피하기 위해 항상 최선을 다합니다

멀티 코어 지원. 리프는 모듈 메커니즘과 리프/고를 통해 멀티코어 자원을 최대한 활용하면서 다양한 부작용

모듈 메커니즘을 피하려고 노력합니다.

Leaf의 모듈 메커니즘

Leaf에서 개발한 게임 서버는 여러 모듈(예: LeafServer)로 구성됩니다. 모듈은 다음과 같은 특징을 갖습니다.

각 모듈은 별도의 고루틴에서 실행됩니다.

모듈 간 전달을 통해. 경량 RPC 메커니즘 통신 세트(leaf/chanrpc)

Leaf는 게임 서버에 너무 많은 모듈을 설계하는 것을 권장하지 않습니다.

게임 서버는 시작 시 모듈을 등록합니다. 예:

leaf.Run(
game.Module,
gate.Module,
login.Module,
)
여기에는 게임, 게이트, 로그인 세 가지 모듈이 순서대로 등록됩니다. 각 모듈은 인터페이스를 구현해야 합니다.

type Module interface {OnInit()OnDestroy()Run(closeSig chan bool)
}

Leaf는 먼저 모듈 등록 순서에 따라 동일한 고루틴에서 모듈의 OnInit 메서드를 실행합니다. 모든 모듈의 OnInit 메서드 실행이 완료된 후 고루틴이 시작됩니다. 각 모듈에 대해 해당 모듈의 Run 메서드가 실행됩니다.

마지막으로 게임 서버가 종료되면(Ctrl + C로 게임 서버 종료) 모듈 등록의 역순으로 동일한 고루틴에서 모듈의 OnDestroy 메서드가 실행됩니다.

위 내용은 고랑잎을 많이 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.