一些国外的1.0我的世界小游戏服务器器,求助

《MC外国服务器超多小游戏》超激情,超好玩的小游戏服务器。_minecraft吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,353,776贴子:
《MC外国服务器超多小游戏》超激情,超好玩的小游戏服务器。
最近不止我,很多网友也在困惑,外国服务器到底哪家强?今次我给大家推荐几个楼下地址
自己一个人玩经常被其他...
介绍: 服务器名称:星际...
上海张学友、王菲演唱会一站式购票!票品安全且真票!立即订购!
这个超多小游戏<外国服务器(要正版),这个服务器很好玩的,我很多还没有玩尤其是后面有五个,超级火热的小游戏,下期视频在慢慢讲解 视频所在地欢迎订阅
这也是一个多小游戏服务器这个服务器主要是饥饿游戏
终极战墙mc.hypixel.net目前这是楼主我发现的外国最好玩的战墙服务器整个服务器主要战墙(要正版)呢个至于这个战墙,我会在后期视频解说
这些服务器总体来说,还是看你网速呢么咱国内也有很多好玩的服务器楼下再说
skywars.co这个服务器,也是外国的,但我没玩过(这英文翻译过来是星空之战?天空之战?)
我叫滑稽,我的身边发生了无法想象的灾难
我要活下去,并且要救出更多的滑稽
缺牙要及时修复,揭秘种植牙如何做到几十年不掉?
有没有国内的战墙服啊,正不正版没关系我有正版
有不要正版的么
晚上更新,盗版服务器,倒班服务器也是有风采的哟,没错还有外国盗版服务器,视频也会定期更新,欢迎大家积极订阅
已经晚上了
不要在意这些细节,.....我的晚上是凌晨左右
开始吧,虽说外国服还没更完,但是应大家要求来看下国内服务器
这个我不太确定是不是这个盗版国内服务器,感觉不错的,24小时开放
我要盗版服务器
留名 --------这是像素点们的家喔
我现在在这个服务器录孤岛生存,很好玩的孤岛,极其考验自己生存能力,里面的水是不能碰的,雨也不行,服务器还有彩蛋射击,躲猫猫,饥饿,等等好玩的小游戏
1。8盗版小游戏服,我知道一个,很好玩。地址在50楼发
贴吧热议榜
使用签名档&&
保存至快速回贴求我的世界外国小游戏服务器,不要正版的,有吗?别给我说采纳才给!_问答百科_我爱台球网
我爱台球网-www.52tq.net
求我的世界外国小游戏服务器,不要正版的,有吗?别给我说采纳才给!
求我的世界外国小游戏服务器,不要正版的,有吗?别给我说采纳才给!
来源:网络收集 & 发布时间: &
什么版本都可以
那么能给我hypixel整合包吗?里面好像也有中国的吧hypixel是服务器,没有整合包,想多玩下载的游戏全是盗版,也就是说整合包是盗版的一个形式,可以玩国内的你的世界服务器7000人,地址:那么hypixel有没有盗版的,我看了都是正版对,不过听说可以破解,有一个国外破解服务器,但不知道有什么用,只是一个验证服务器那你有没有中国的小游戏服务器,要很多小游戏,我那个中国最大小游戏服务器玩腻了,要1.8的没有了,只有youcraft,我空岛积分1500,我们可以一起玩谢谢,我们就不一起玩了,不过我有个盗版外国服务器,是要1.7-1.9的我发ip: 地址:ccmmo.net:25565
地址:play.
地址:play.guildcraft.org:25565
地址:play.pika-network.net
地址:playhc.ms:25565
没有,现在国外服务器全部正版,国外支持正版,反盗版,而且需要vpn支持,况且我再hypixel的账号莫名被封了,只要是非美洲ip都有几率会别封号支持正版望采纳
求我的世界1.6.2小游戏服务器(不要正版)最好多一点小游戏4求我的世界1.6.2小游戏服务器(不要正版)最好多一点小游戏你们有没有我的世界正版服务器不要是小游戏求我的世界1.7.2的小游戏服务器(不要正版,最好是只有小游戏的...求我的世界1.8小游戏服务器,不要客户端,直接用1.8进急急急急...5 更多关于“求我的世界外国小游戏服务器,不要正版的,有吗?别给我说采纳才给!”内容
我的世界外国小游戏服务器 ……Cytooxien.de 正版,是德服……
求我的世界1.6.2小游戏服务器(不要正版)最好多一点小游戏 …… 他里面有许多小游戏 空岛服,生存服,创造服,饥饿游戏服,娱乐服等 娱乐服里有【饥饿... 希望你能喜欢 我在里面的名字叫【My_KK】 呵呵,一起玩吧 别忘了采纳哟~~~ ^_...……
谁能给我一个我的世界小游戏服务器? ……
小游戏服一般是国外的,要正版账号,国内的大多数是生存服,有一两个小游戏,我有一个172的小游戏服,国内的,你要的话就采纳,我会在评论里告诉你……30670人阅读
1.1J2se(43)
HTTP 1.1与HTTP 1.0的比较
一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当WEB浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析WEB服务器返回的该网页文档中的HTML内容时,发现其中的&img&图像标签后,浏览器将根据&img&标签中的src属性所指定的URL地址再次向服务器发出下载图像数据的请求,如图3.3所示。
显 然,访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,上一次和下一次请求完全分离。即使图像文件都很小,但是客户端和服务器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务器的性 能。当一个网页文件中包含Applet,JavaScript文件,CSS文件等内容时,也会出现类似上述的情况。
为了克服HTTP 1.0的这个缺陷,HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。基于HTTP 1.1协议的客户机与服务器的信息交换过程,如图3.4所示。
可见,HTTP 1.1在继承了HTTP 1.0优点的基础上,也克服了HTTP 1.0的性能问题。不仅如此,HTTP 1.1还通过增加更多的请求头和响应头来改进和扩充HTTP 1.0的功能。例如,由于HTTP 1.0不支持Host请求头字段,WEB浏览器无法使用主机头名来明确表示要访问服务器上的哪个WEB站点,这样就无法使用WEB服务器在同一个IP地址和端口号上配置多个虚拟WEB站点。在HTTP 1.1中增加Host请求头字段后,WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,这才实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点。HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。
原文英文版RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0
RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
(Proposed) HTTP-NG Working Group下 一代超文本传输协议(HTTP-NG),为了克服当前HTTP协议的缺点,W3C(World Wide Web consortium)开始研究制定下一代HTTP协议?TTP-NG。它分三个层次:应用层、消息层、传输层。现有WEB上应用将转换到HTTP-NG 平台上,最后整个平台都会更新为HTTP-NG。
RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0 中文版
RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1 中文版
1.0与1.1的区别,英文版Key Differences between HTTP/1.0 and HTTP/1.1
中文翻译版没有看到,有看到的告诉我:)
附上:HTTP 1.1状态代码及其含义状态代码& 状态信息& 含义& 100& Continue& 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)& 101& Switching Protocols& 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)& 200& OK& 一切正常,对GET和POST请求的应答文档跟在后面。 201& Created& 服务器已经创建了文档,Location头给出了它的URL。& 202& Accepted& 已经接受请求,但处理尚未完成。& 203& Non-Authoritative Information& 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。& 204& No Content& 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。& 205& Reset Content& 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。& 206& Partial Content& 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。& 300& Multiple Choices& 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。& 301& Moved Permanently& 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。& 302& Found& 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是&Moved Temporatily&。 出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。
注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求(缺少了后面的斜杠),有的服务器返回301,有的则返回302。
严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。 &303& See Other& 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。& 304& Not Modified& 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。& 305& Use Proxy& 客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。& 307& Temporary Redirect& 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时 才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。(HTTP 1.1新)& 400& Bad Request& 请求出现语法错误。& 401& Unauthorized& 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。& 403& Forbidden& 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。& 404& Not Found& 无法找到指定位置的资源。这也是一个常用的应答。& 405& Method Not Allowed& 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新)& 406& Not Acceptable& 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)。& 407& Proxy Authentication Required& 类似于401,表示客户必须先经过代理服务器的授权。(HTTP 1.1新)& 408& Request Timeout& 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。(HTTP 1.1新)& 409& Conflict& 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)& 410& Gone& 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。(HTTP 1.1新)& 411& Length Required& 服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)& 412& Precondition Failed& 请求头中指定的一些前提条件失败(HTTP 1.1新)。& 413& Request Entity Too Large& 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1新)。& 414& Request URI Too Long& URI太长(HTTP 1.1新)。& 416& Requested Range Not Satisfiable& 服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)& 500& Internal Server Error& 服务器遇到了意料不到的情况,不能完成客户的请求。& 501& Not Implemented& 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。& 502& Bad Gateway& 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。& 503& Service Unavailable& 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。& 504& Gateway Timeout& 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)& 505& HTTP Version Not Supported& 服务器不支持请求中所指明的HTTP版本。(HTTP 1.1新)&
===================================================================================更多的资源......中国协议分析网
用Socket类实现HTTP协议客户端应用
用Java设计下载软件使用多线程编程技术,同时启动多个线程,根据线程个数,计算文件分割位置,向服务器发送几个不同的下载断点,同时接受数据并写入文件,就可以实现多线程下载了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1105506次
积分:13548
积分:13548
排名:第716名
原创:310篇
转载:155篇
评论:296条
(1)(1)(1)(4)(2)(11)(1)(3)(1)(2)(4)(1)(3)(13)(1)(7)(1)(1)(8)(3)(11)(6)(5)(11)(2)(1)(1)(5)(8)(12)(7)(4)(8)(6)(18)(1)(9)(10)(20)(14)(14)(49)(47)(22)(30)(18)(3)(13)(10)(4)(6)(16)(5)pomelo 1.0 preview版发布, 网易开源游戏服务器框架
## pomelo udpconnector提供根据网友的要求,在pomelo 1.0中提供了udpconnector。在该udpconnector中,采用了pomelo之前hybridconnector提供的传输协议,包括握手、心跳及数据包的格式。该connector中通过客户端的ip和port来对客户端进行唯一标识,客户端的断开则是通过心跳超时进行判定。使用方法:```// app configurationapp.configure('production|development', 'connector', function() {app.set('connectorConfig',{connector : pomelo.connectors.udpconnector,heartbeat : 3});});```由于pomelo中提供的客户端还没有支持udp的,所以在1.0.0中提供一个node版本的udp client,配合通过pomelo init出来的demo使用,具体可以参考[udpclient](/py8765/udpclient/tree/master)## pomelo-rpc 负载均衡及容错机制在pomelo 1.0版本中,pomelo-rpc提供了相关的负载均衡算法,开发者在调用rpc时,可以选择相应的路由算法,rpc框架会根据不同的配置在rpc客户端进行路由算法的选择,从而完成相应的rpc调用。提供的负载均衡算法包括:rr(ROUNDROBIN), wrr(WEIGHT_ROUNDROBIN), la(LEAST_ACTIVE), ch(CONSISTENT_HASH)。
配置方法:```// rrapp.configure('production|development', 'connector', function() {app.set('proxyConfig',{routerType: 'rr'});});//基于权重的rr,在servers.json中对rpc目标服务器进行权重配置app.configure('production|development', 'connector', function() {app.set('proxyConfig',{routerType: 'wrr'});});&&read&: [&& & {&id&: &read-server-1&, &host&: &127.0.0.1&, &port&: 4150, &weight&: 1},& & {&id&: &read-server-2&, &host&: &127.0.0.1&, &port&: 4151, &weight&: 5},& & {&id&: &read-server-3&, &host&: &127.0.0.1&, &port&: 4152, &weight&: 8}&]
//laapp.configure('production|development', 'connector', function() {app.set('proxyConfig',{routerType: 'la'});});//consistent_hashapp.configure('production|development', 'connector', function() {app.set('proxyConfig',{routerType: 'ch',& & & & & & replicas: '100', & //虚拟节点数量& & & & & & algorithm: 'md5', &//hash算法hashFieldIndex: 0 //根据rpc参数列表中的具体参数进行hash});});```ps: 如果使用toServer('chat-server-1')这种指定rpc目标服务器的rpc调用则不会使用相关的负载均衡算法,如果是指定了routerType则之前在application对象中设置的route函数则无效;综合这三种方式的优先级是toServer & 指定routerType & 指定路由函数。在新版本中,pomelo-rpc模块提供了相关的容错机制,包括failover,即失败自动切换,当出现失败,重试其它同类型服务器,这种模式通常用于读操作,但重试可能会带来更长延迟;failfast是快速失败,其策略为只发起一次rpc调用,失败后就立即将错误信息返回;failsafe则是一种安全策略,也是rpc默认采用的,即根据rpc的不同类型错误进行不同的处理策略,主要是发起连接重试和发送重试操作。配置方法:```//快速失败app.configure('production|development', 'connector', function() {app.set('proxyConfig',{failMode : 'failfast'});});//切换服务器app.configure('production|development', 'connector', function() {app.set('proxyConfig',{failMode : 'failover'});});//安全策略app.configure('production|development', 'connector', function() {app.set('proxyConfig',{failMode : 'failsafe',retryTimes: 3, //重试次数retryConnectTime: 5 * 1000 //重连间隔时间});});```ps: rpc默认采用安全策略。## pomelo 支持tls及wss考虑到安全性方面的问题,pomelo 1.0版本中增加了对tls及wss协议的支持;在之前的pomelo版本中,提供了hybridconnector和sioconnector;对于sioconnector,其底层使用的是socket.io,socket.io提供了包括websocket和长轮询等几种传输方式,其中websocket默认采用的ws协议,现在pomelo支持wss协议,即用户可以在sioconnector中配置基于wss协议的websocket的通信方式;对于hybridconnector,提供包括原生socket的支持和websocket的支持,针对这两种方式,在pomelo 1.0中提供了两种连接的安全版本即tls和wss,用户可以在使用hybridconnector时,采用安全级别较高的tls或者wss。使用方法:支持tls客户端,pomelo现在提供的tls客户端有libpomelo.```app.configure('production|development', 'connector', function() {& app.set('connectorConfig',& & {& & & connector : pomelo.connectors.hybridconnector,& & & heartbeat : 3,& & & useDict : true,& & & useProtobuf : true,& & & ssl: {& & & & type: 'tls',& & & key: fs.readFileSync('./keys/server.key'),& & &cert: fs.readFileSync('./keys/server.crt'),& & & }& & });});```支持wss客户端, pomelo提供的wss客户端有js客户端.```app.configure('production|development', 'connector', function() {& app.set('connectorConfig',& & {& & & connector : pomelo.connectors.hybridconnector,& & & heartbeat : 3,& & & useDict : true,& & & useProtobuf : true,& & & ssl: {& & & & type: 'wss',& & & key: fs.readFileSync('./keys/server.key'),& & &cert: fs.readFileSync('./keys/server.crt'),& & & }& & });});```支持socket.io的wss客户端, pomelo提供的socket.io的wss客户端有js客户端.```app.configure('production|development', 'connector', function() {& app.set('connectorConfig',& & {& & & connector : pomelo.connectors.sioconnector,& & & key: fs.readFileSync('./keys/server.key'),& &cert: fs.readFileSync('./keys/server.crt')& & });});```在pomelo 1.0中增加了通过pomelo init 获取wss和socket.io的wss两种客户端及服务端的初始化项目,同时初始化的项目中提供了相应的密钥及证书。注意由于证书是和域名绑定的,所以在打开客户端的时候输入的ip地址为 &https://127.0.0.1:3001## pomelo 提供zookeeper集群管理在pomelo之前版本中,提供了master服务器进行集群管理,对于中小型游戏项目及非大型分布式集群项目来说已经能够满足需求;对于大型的分布式项目的集群管理,zookeeper则是最佳选择。为了让pomelo在更广泛的领域适用,在1.0版本中pomelo提供了zookeeper的插件。其主要原理是利用zookeeper的集群管理,使得pomelo集群中服务器信息保持一致,确保pomelo对外提供稳定的服务。具体实现则是master服务器启动后主动向zookeeper注册一个根节点,其它服务器启动后作为这个根节点的孩子注册到zookeeper,并将服务器相关信息写入,同时非master服务器监听该根节点的孩子节点变化情况;一旦孩子节点有变化,则其它节点重新从根节点或者当前集群中服务器信息。使用方法:```& &var zookeeper = require('pomelo-zookeeper-plugin');& &app.configure('production|development', function() {& & //关闭master集群管理功能app.set('masterConfig', {closeWatcher: true});app.set('monitorConfig', {closeWatcher: true});app.use(zookeeper, {zookeeper: {server: '127.0.0.1:2181',path: '/pomelo/servers',username: 'pomelo',password: 'pomelo'}});&& }```github地址: [pomelo-zookeeper-plugin](/NetEase/pomelo-zookeeper-plugin)## libpomelo 提供自动重连及SSL/TLS支持libpomelo自动重连===================关于libpomelo的自动重连,目前使用的策略为一旦检测到读写socket错误或者数据包解析遇到非法包时,将重置连接,并发起自动重连,重连成功后抛出reconnect事件。用户可以通过显式地调用pc_client_disconnect来断开连接,这样的话,将不会发起自动重连。新增API:- pc_client_t* pc_client_new_with_reconnect(int delay, int delay_max, int exp_backoff);参数说明:& & delay - 这个参数是重连时,用来退避的延时值,单位为秒& & delay_max - 这个参数是重连时最大延时值,单位也为秒& & exp_backoff - 是否开启指数退避,非0时为开启指数退避,为0时不开启指数退避返回值:& & 成功,返回创建成功的实例& & 失败,返回NULL例如,如果delay为2s,delay_max为10s,exp_backoff为0,不开启指数退避,那么重连时的连接重试间隔将为& & & &2s, 4s, 6s, 8s, 10s, 10s, 10s......直到连接上为止& & & 如果delay为2s, delay_max为30s,exp_backoff为1, 开启指数退避,那么重连时的连接重试间隔将为& & & &2s, 4s, 8s, 16s, 30s, 30s.....直到连接上为止- void pc_client_disconnect(pc_client_t* client);参数说明:& & &client 为pomelo client实例libpomelo SSL/TLS支持=======================libpomelo目前计划支持SSL/TLS,使用OpenSSL。在使用TLS支持时,在编译时需开启宏 WITH_TLS。 **拟**增加API如下:- int pc_client_lib_init();& 这个函数主要用来做一些全局SSL/TLS相关的以及库相关的初始化,此函数应该在所有其他库函数执行前调用一次,不用检查返回值,返回值永远为0。- int pc_client_lib_cleanup();& 这个函数与pc_client_lib_init相对应,用来在应用关闭时,对整个库做一些全局化的清理工作,其应当是最后一个被调用的库函数,返回值永远为0- int pc_client_set_tls_ca(pc_client_t* client, const char* cafile, const char* capath)& 这个函数用来设置SSL/TLS用到的ca信息.参数说明:& client - pomelo client实例.& cafile,capath - 这两个参数用来指定ca信息,具体请参见SSL的调用[SSL_CTX_load_verify_locations](https://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html).返回值:& 成功,返回值为0& 参数错误时,返回值为-1- int pc_client_set_tls_cert(pc_client_t* client, const char* certfile, const char* keyfile, int (\*pw_callback)(char* buf, int size, int rwflag, void* userdata));& 这个函数是服务端要求对pc client进行验证时,用来设置客户端的证书以及私钥信息, 如果不需要双向验证,则不需要设置。参数说明:&& cerfile - 存放证书链的文件,PEM格式,具体请参见OpenSSL的调用[SSL_CTX_use_certificate_chain_file](https://www.openssl.org/docs/ssl/SSL_CTX_use_certificate.html)& keyfile - 存放私钥的文件,PEM格式。& pw_callback - 如果私钥文件使用口令加密的话,此参数会被回调用来传递解密私钥文件的口令,否则为NULL即可,具体参见 [SSL_CTX_set_default_passwd_cb](https://www.openssl.org/docs/ssl/SSL_CTX_set_default_passwd_cb.html#)- int pc_client_set_tls_opts(pc_client_t* client, int enable_verify, const char* ciphers);& 这个参数是用来设置SSL的一些选项的,OpenSSL的提供的选项很多,这里仅提供了两处选项设置参数说明:& enable_verify - 是否开启服务端证书验证,将此值设置为0,将不验证服务端证书,设置为1将验证服务端证书,缺省时不对服务端证书进行验证& ciphers - 一个字符串用来说明可用的加密算法,如果使用缺省值的话,只需设置为NULL即可- int pc_client_set_tls_hostname_verify(pc_client_t* client, int (\*hostname_verify_cb)(pc_client_t* client, const char** names, int len));& 这个函数用来设置对服务端的hostname进行验证的回调的参数说明:&& &hostname_verify_cb - 这个参数是一个回调用来验证服务器端证书中的SAN以及CN字段的,如果设置了此回调,那么当收到证书后,libpomelo会从证书中解析出SAN和CN,并调用此回调函数,此函数返回1表示验证通过,返回0表示验证失败,参数 names 和 len 是用来表示一个字符串数组,其内部存储着证书中解析出来的SAN和CN。对于names,用户在实现回调时,只需要访问其获取SAN和CN即可,不要对其进行其他的操作,libpomelo会负责其内存的申请和释放。说明=========================关于自动重连和TLS支持,目前还处于实验阶段,其中自动重连已经可以测试,但是TLS实现尚未加完,在github上有auto-reconn分支和ssl分支,也欢迎各位把你修改后的或者更好的实现代码贡献出来, 谢谢。关于libpomelo任何想法,无论是代码组织,还是具体的实现策略,欢迎大家互相交流。&## pomelo 提供自动扩展插件在pomelo1.0里提供了一个服务器自动扩展的插件,其主要原理是监控某一类型的服务器,监控的指标现在暂时提供cpu和memory,当这一类型的服务器的某项监控指标超过之前设置的阈值时,服务器就自动扩展,扩展服务器的数量可以由用户进行配置。使用方法:```//app.js配置方法app.configure('production|development', 'master', function() {app.use(scale, {scale: {cpu: {chat: 5,interval: 10 * 1000,increasement: 1},memory: {connector: 5,interval: 15 * 1000,increasement: 1&},&backup: 'config/development/backupServers.json'}});});``````//backupServer.json配置{& & &connector&:[& & & & & & &{&id&:&backup-connector-server-1&, &host&:&127.0.0.1&, &port&:4053, &clientPort&: 3053, &frontend&: true},& & & & & & &{&id&:&backup-connector-server-2&, &host&:&127.0.0.1&, &port&:4054, &clientPort&: 3054, &frontend&: true},& & & & & & &{&id&:&backup-connector-server-3&, &host&:&127.0.0.1&, &port&:4055, &clientPort&: 3055, &frontend&: true}& & & & &],& & & & &chat&:[& & & & & & &{&id&:&backup-chat-server-1&, &host&:&127.0.0.1&, &port&:6053},& & & & & & &{&id&:&backup-chat-server-2&, &host&:&127.0.0.1&, &port&:6054},& & & & & & &{&id&:&backup-chat-server-3&, &host&:&127.0.0.1&, &port&:6055}& & & & ]}```配置参数说明:现在监控指标包括cpu和memory两项,在每一个监控指标内可以有监控的服务器类型,例如chat:5,这样就表示chat类型的服务器的阈值为5%,当chat类型的服务器cpu的平均值超过5%后,系统将自动扩展服务器,服务器一次扩展的数量由increasement参数决定,例如increasement参数为1,则表示每次超过阈值后扩展1个服务器,扩展服务器的列表由用户指定,backup参数就是扩展的服务器列表;另外interval参数表示系统检测时间,单位是秒,例如interval: 15 * 1000表示系统每15秒检测一次相应的指标,如果超过该指标则进行相应的扩展。github地址: [pomelo-scale-plugin](/NetEase/pomelo-scale-plugin)## 支持按环境目录配置在pomelo1.0中支持按照目录结构进行配置相关的配置文件,在之前的版本中pomelo的配置文件如下图所示:&img src='/py8765/pomelo_images/master/dir.bmp'&不同环境是根据具体配置文件里的key进行区分,例如:```// servers.json配置{& & &development&:{& & & & &connector&:[& & & & & & &{&id&:&connector-server-1&, &host&:&127.0.0.1&, &port&:4050, &clientPort&: 3050, &frontend&: true}& & & & &]& & },& & &production&:{& & & & & &&connector&:[& & & & & & &{&id&:&connector-server-1&, &host&:&127.0.0.1&, &port&:4050, &clientPort&: 3050, &frontend&: true}& & & & &]& }}```在pomelo1.0支持根据目录进行配置,如下图所示:&img src='/py8765/pomelo_images/master/new_dir.bmp'&config 目录下是根据环境进行文件配置, 在启动过程中选择不同的环境就会根据相应的环境名称目录加载该目录下的所有配置文件。例如 pomelo start env=online 这样就会加载config/online目录下的所有配置文件。默认会加载development下面的配置文件。在这种情况下,对应的servers.json就不需要根据环境配置,具体配置如下:```{& & & & &connector&:[& & & & & & &{&id&:&connector-server-1&, &host&:&127.0.0.1&, &port&:4050, &clientPort&: 3050, &frontend&: true}& & & & &]}```PS: 默认还是会直接加载config目录下的配置文件,当config目录下面没有对应的文件系统将才会加载环境名称对应的目录下的配置文件;所以要使用根据环境名称目录进行配置时需要先将config目录下之前的配置文件删除。## 支持pomelo-cli输入脚本pomelo 1.0版本中,在pomelo-cli中增加了对脚本输入的支持,主要是方便通过pomelo-cli对不同服务器进行动态地查看相关信息,例如在前端服务器查看相应的session数量,某一个用户的session,或者某一个用户的地址信息等等。使用方法:```pomelo-cli  //进入pomelo-cliuse connector-server-1 &//使用具体服务器run app.get(&sessionService&).getSessionsCount() &//执行相应的命令```ps: 脚本默认app为每个服务器的application对象,考虑到通过application对象可以获取到这个服务器的所有信息,所以在这个执行脚本中只提供application对象。## 其它在1.0版本中取消对toobusy和ndump模块的支持,但保留toobusy的filter,如果需要可以自己在项目中安装toobusy模块;对于ndump则采用node-heapdump取代,pomelo-cli暂时只支持对内存的dump,停止对cpu dump的支持。
Pomelo 的详细介绍:
Pomelo 的下载地址:
转载请注明:文章转载自 开源中国社区
本文标题:pomelo 1.0 preview版发布, 网易开源游戏服务器框架
本文地址:

我要回帖

更多关于 中国人在国外求助电话 的文章

 

随机推荐