Skip to content
mybios edited this page Dec 25, 2017 · 2 revisions

热身

  • 本教程适用于对pinus零基础的用户,如果你已经有过一定的pinus开发基础,请跳过这个教程,你可以阅读开发指南,那里会对一些话题作较为详细的探讨。

  • 由于pinus是基于node.js并使用TypeScript开发的,因此希望你在阅读本教程前对node.js和TypeScript有一些了解。

  • 本教程的示例源码放在github上,对于教程的不同部分,使用了不同的分支,因此希望你在使用本教程之前对github有个简单的了解,能帮助你更好地使用本教程。

  • 本教程将以一个实时聊天应用为例子,通过对这个应用进行不同的修改来展示pinus框架的一些功能特性,让用户能大致了解pinus,熟悉并能够使用pinus进行应用程序的开发。

  • 本教程假定你使用的开发环境是类Unix系统,如果你使用的Windows系统,希望你能够知道相关的对应方式,比如一些.sh脚本,在Windows下会使用一个同名的bat文件,本教程中对于Windows系统,不做特殊说明。

为什么是聊天?

Pinus是游戏服务器框架,本质上也是高实时、可扩展、多进程的应用框架。除了在提供的库部分有一部分游戏专用的库,其余部分框架完全可用于开发高实时的应用。而且与现在有的node.js高实时应用框架如derby、socketstream、meteor等比起来有更好的可伸缩性。

由于游戏在场景管理、客户端动画等方面有一定的复杂性,并不适合作为pinus的入门应用。对于大多数开发者而言,node.js的入门应用都是一个基于socket.io开发的普通聊天室, 由于它是基于单进程的node.js开发的, 在可扩展性上打了一定折扣。

因此,我们也选择做一个聊天应用来作为教程的例子,而基于pinus框架开发的聊天应用天生就是多进程的,可以非常容易地扩展服务器类型和数量。

教程内容

在之前的章节中,我们已经看到了HelloWorld项目,对如何使用pinus开发应用程序应该有了一个初步的印象。在这个教程里面,我们将以一个使用pinus开发的实时聊天应用为示例,来依次展示如何在pinus增加一个filter、进行route压缩、rpc调用和使用protobuf等。这些例子仅仅是为了展示pinus框架的特性,所以并不具有很强的实用性, 只是希望用户通过对这些例子的学习,可以熟悉pinus各个特性的使用,给用户一个直观的认识,使得用户也能按照例子的方式,使用pinus提供的功能。其大致内容包括以下部分:

  • 我们首先会对pinus中常见的一些术语进行一个简要的解释;
  • 从github获得一个现成的分布式聊天应用,我们对其源码进行分析,然后让其运行起来;
  • 对我们的聊天应用的服务器进行扩展,使用多个服务器来完成我们的应用;
  • 给原来的应用增加一个filter,来实现我们想要的功能,同时学会filter在pinus中的使用;
  • pinus提供了route压缩,尝试在我们的应用里使用route压缩,同时学会如何在pinus中使用route压缩功能;
  • pinus提供了基于protobuf的消息压缩,尝试将其运用到我们的项目中,同时学会如何在pinus中使用基于protobuf的消息压缩;
  • 增加一个获取时间的rpc服务,当然功能上纯粹属于“画蛇添足”,不过这里是出于演示如何使用rpc的目的;
  • 尝试给pinus增加一个HelloWorld component,目的同上,只是为了演示如何给pinus扩展组件,从而学会给pinus扩展自定义组件;
  • 增加一个admin-module,以演示如何使用admin-module来扩展pinus的服务器管理监控框架;
  • 最后是关于pinus的一些杂项以及总结。

当完成上面的教程后,相信你已经能够熟练使用pinus提供的各项特性做一些开发了,这也是本教程要达到的目的。更深入的探讨可以参阅开发指南,或者直接阅读源码都是可以的。下面进入下一步,我们将对pinus中的一些术语进行简单的解释。

Clone this wiki locally