我是MuffinCoder,可以叫我Joxes,一名普通的服主。
该书目录 该书目录
最近一段时间没有更新我的史诗巨坑了(开服专集),最后直接弃坑不写了,因为我还要有大量的时间去鼓捣我那个半吊子服务器,目前已经完成的差不多了,所以抽出一点时间完善自己的开服专集,想了半天不知道写啥,然后发现开服的日子BC端令我印象挺深刻,所以搬出来写了一下,就这么简单。
咱先不扯了,先来进入正题吧,在开服界,是否有过一个服务器装不下的烦恼?是否有多个模式挤在一个服务器里造成巨大BUG和崩溃的烦恼?的确有,传统的服务器是一个单体,如果你在服务器里装上插件,整个服务器都会运行,这就造成某些冲突的插件在一起造成BUG和报错。比如说主世界你想做一个大厅,所以你搞了一个保护插件,但是这个保护插件把你的所有世界保护了,资源世界不能挖资源,生存世界不能放置方块,小游戏服务器不能放置破坏PVP等等……,这就令服主非常蛋疼了,因为可以看出这样做服务器十分的脓肿和不方便,这时候,把多个服务器联系起来就非常有必要了。
最早是一个程序员开发了名叫CraftProxy的跨服软件,可以简单的将几个服务器连接在一起,形成大型的群组服务器。但后来因为BUG过于多同时插件太少和开发者API不方便,它就被作者弃坑了。
然后,Spigot核心端的作者md_5巨佬开发了BungeeCord服务端,同样是依靠Proxy技术,但要比CraftProxy更加方便和自定义化,经过不断改进,BC每周都能发布和MOJANG每周快照同步的核心端。
说了这么久,可能还没有明白BC的用法,现在我用更明了的构图方法来描述BC的工作原理。(以下超多括号,虽然乱,但得看,看了就明白了)
需要注意的是,bungee不是一个服务端插件,它是一个服务端程序,用来连接各个服务器与玩家,而不是放到服务器的plugins文件夹当中,bungee和bukkitSpigot的服务端API语法完全不同,性质也不一样,bungee拥有自己的plugins文件夹,用来解析bc服务端插件。
首先,我们可以将整个服务器看成一个公司,而BC看成大门和人事部,登录服务器看成面试区。人事部干啥的?用来管理全公司(你的服务器)工作人员(玩家)在工作区(子服务器)之间的进出调整(传送):
那么,一个玩家就像是一个应聘者,来到公司应聘(请求加入服务器),而应聘总得面试吧。面试去哪?面试区(登录服务器)啊,不能直接去工作部门(服务器的各个旗下服务器)工作(玩♂耍)吧!于是,玩家来到了人事部,也就是我们的BC端。
接着玩家发请求给BC,请求BC准许他加入服务器,BC同意了,但这只是第一步,因为BC是人事部,他准许你暂时到服务器外部遛遛,但不能进去工作区域(子服务器),还得面试(进行账户的注册验证)通过后才能加入。
然后人事部(BC端)把应聘者(玩家)交给了面试区(登录服务器),然后人事部不管你了,就靠你能不能成功面试(成功通过验证),而人事部就等面试结果出来,是否允许你加入这个公司(加入服务器),如果你通过了面试(通过了验证),就代表你成功了,如果失败了,就直接把你撵出去。
当然,面试官(登录插件)可能会让你多试几次,也许紧张答错了答案(输错了密码),多给你几次机会也是可以的,但是人的忍耐是有限度的,当面试官(登陆插件)发现你是个stupid dog时就会毫不留情的把你撵出去。
关于登陆的结构讲完了,现在来讲讲传送服务器的结构
假设有个刚刚加入的应聘者在大厅(大厅服务器)徘徊,假设这个公司很自♂由,可以让你随便在哪工作(随便在哪个服务器玩♂耍),假设这个公司下面有五个工作部门(五个子服务器),分别名为:生存、空岛、创造、RPG和游戏,工作人员在每个部门职业的调整(在每个服务器之间的传送)都由人事部管理,那么大厅可不是工作区域,假设这个新来的萌新想去生存工作区(生存服务器)愉快的工作(玩♂耍),那么他给人事部发请求,说想去生存工作区工作,于是工作(传送)请求发出去了:
人事部接收到请求,于是拿出了人事表(服务器列表),翻啊翻,一看生存服务器没满,于是把这个小萌新从大厅调到了生存工作区(生存服务器)当中,好了,小萌新到了生存工作区(生存服务器),开始了愉快的工作(玩♂耍)。
在其他的服务器当中工作原理也是这样,在本文就不一一赘述了。
由此可见,BC的用处十分广泛,不仅方便了服主开发一整套大型综合服务器,也便于玩家进行游玩和开发者进行开发,虽然在安全方面有一些小问题,但它的方便程度还是让它大受欢迎。下一章我们将讲解如何搭建一个BC端系统!
感谢对我的支持,关注我并点赞,可以阅读更多关于这方面的文章,如要阅读更多关于BC的开服技巧,可以关注我的文集 Minecraft开服专集-BungeeCord零基础教程 或者前往 该书目录 感谢支持。