pitaya 游戏分布式服务器 pitaya

agni • 13732 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
Pitaya是一款易于使用,快速且轻量级的分布式游戏服务器框架 Pitaya is an simple, fast and lightweight game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. It provides a basic development framework for distributed multiplayer games and server-side applications. Getting Started Prerequisites Go >= 1.10 etcd (used for service discovery) nats (optional, used for sending and receiving rpc, grpc implementations can be used too if prefered) docker (optional: used for running etcd and nats dependencies on containers) Installing clone the repo git clone https://github.com/topfreegames/pitaya.git setup pitaya dependencies make setup Hacking pitaya Here's one example of running Pitaya: Start etcd (This command requires docker-compose and will run an etcd container locally. An etcd may be run without docker if prefered.) cd ./examples/testing && docker-compose up -d etcd run the connector frontend server from cluster_grpc example make run-cluster-grpc-example-connector run the room backend server from the cluster_grpc example make run-cluster-grpc-example-room Now there should be 2 pitaya servers running, a frontend connector and a backend room. To send requests, use a REPL client for pitaya pitaya-cli. $ pitaya-cli Pitaya REPL Client >>> connect localhost:3250 connected! >>> request room.room.entry >>> sv-> {"code":0,"result":"ok"} Running the tests make test This command will run both unit and e2e tests. Contributing #TODO Authors TFG Co - Initial work License MIT License Acknowledgements nano authors for building the framework pitaya is based on. pomelo authors for the inspiration on the distributed design and protocol Security If you have found a security vulnerability, please email security@tfgco.com Resources Other pitaya-related projects libpitaya-cluster libpitaya pitaya-admin pitaya-bot pitaya-cli pitaya-protos Documents API Reference In-depth documentation Demo Implement a chat room in ~100 lines with pitaya and WebSocket (adapted from nano's example) Pitaya cluster mode example Pitaya cluster mode with protobuf protocol example Benchmarks using grpc ===============RUNNING BENCHMARK TESTS WITH GRPC=============== --- starting testing servers --- sleeping for 5 seconds goos: darwin goarch: amd64 BenchmarkCreateManyClients-30 2000 732922 ns/op BenchmarkFrontHandlerWithSessionAndRawReturnsRaw-30 2000 712525 ns/op BenchmarkFrontHandlerWithSessionAndPtrReturnsPtr-30 2000 704867 ns/op BenchmarkFrontHandlerWithSessionAndPtrReturnsPtrManyClientsParallel-30 2000 647892 ns/op BenchmarkFrontHandlerWithSessionAndPtrReturnsPtrParallel-30 2000 692803 ns/op BenchmarkFrontHandlerWithSessionOnlyReturnsPtr-30 2000 880599 ns/op BenchmarkFrontHandlerWithSessionOnlyReturnsPtrParallel-30 2000 630234 ns/op BenchmarkBackHandlerWithSessionOnlyReturnsPtr-30 1000 1123467 ns/op BenchmarkBackHandlerWithSessionOnlyReturnsPtrParallel-30 2000 667119 ns/op BenchmarkBackHandlerWithSessionOnlyReturnsPtrParallelMultipleClients-30 2000 664865 ns/op using nats ===============RUNNING BENCHMARK TESTS WITH NATS=============== --- starting testing servers --- sleeping for 5 seconds goos: darwin goarch: amd64 BenchmarkCreateManyClients-30 2000 873214 ns/op BenchmarkFrontHandlerWithSessionAndRawReturnsRaw-30 2000 702125 ns/op BenchmarkFrontHandlerWithSessionAndPtrReturnsPtr-30 2000 794028 ns/op BenchmarkFrontHandlerWithSessionAndPtrReturnsPtrManyClientsParallel-30 2000 769600 ns/op BenchmarkFrontHandlerWithSessionAndPtrReturnsPtrParallel-30 2000 702894 ns/op BenchmarkFrontHandlerWithSessionOnlyReturnsPtr-30 2000 984978 ns/op BenchmarkFrontHandlerWithSessionOnlyReturnsPtrParallel-30 2000 699000 ns/op BenchmarkBackHandlerWithSessionOnlyReturnsPtr-30 1000 1945727 ns/op BenchmarkBackHandlerWithSessionOnlyReturnsPtrParallel-30 2000 784496 ns/op BenchmarkBackHandlerWithSessionOnlyReturnsPtrParallelMultipleClients-30 2000 846923 n
授权协议:
开发语言:
go 查看源码»
13732 次点击  
加入收藏 微博
2 回复  |  直到
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传