一文教你如何搭建http游戏服务器
前言关键词:NodeJs、express、http服务器
一、搭建一个http的服务器1. 什么是弱联网游戏的主体 , 不需要网络就能游戏 → 单机游戏 。
但是为了优化游戏体验 , 培养用户黏性 , 通常会设计好友排行、得分、道具、抽奖等环节需要联网 , 这些就需要用弱联网技术来做 。
【一文教你如何搭建http游戏服务器】弱联网技术一般需要访问服务器 , 通常采用http服务器, 也就是web服务器+数据库 。
用什么技术?
主流的服务器开发语言 , 都有http的技术 , 成熟的应用 。 Java:Tomcat , Python:tornado , C#:IIS; Node.js中有个 express模块 , 是轻量级http服务器 。 使用JavaScript开发 。
2. 搭建http服务器(1)安装Node.js: www.baidu.com --> Node.js --> node -v -->打印出来Node.js版本;
文章插图
(2)安装express: express基于Node.js http框架 。
文章插图
百度搜索进入GitHub官网 , 点击进入 , 搜索express , 如上图 。 然后 , 点击进入 。 在磁盘新建一个文件夹webserver , 进入此文件夹 , 按住Shift键同时 , 右击 , 选择【在此处打开命名窗口】 , 之后执行命令:npm install express , 安装express 。 参照
文章插图
(3)搭建一个http server --> 6行代码; 在文件夹webserver中新建main.js文件 , 修改文件内容如下:
1.`var express = require('express'); // creatorApplication: 帮助我们创建一个web app实例;`3.`var app = express(); // app 的实例;`5.`// 百度新闻:国内--->一个站点里面不同地址;`6.`// 百度欣慰:国际`7.`// : 站点:IP(服务器IP + 域名解析) + 端口;`8.`// 域名 ---》DNS服务器---》解析得到IP地址;`9.`//---> `10.`// 站点IP: 127.0.0.1, 端口: 服务器指定: 8080;`11.`// `12.`// 地址的响应请求, --->处理函数;`13.`// 地址:响应请求`14.`// lucky --->funtion()`15.`// req 客户端发过来的请求对象 , 数据都再里面;`16.`// res: 服务端会数据给客户端的 对象;`18.`app.get('/lucky', function(req, res) {`19.`var ret = 1+ Math.random() * 7;`20.`ret = Math.floor(ret);`21.`res.send(""+ ret);`22.`});`
app.listen(8080); // 站点端口; 如下图 , 在webserver目录下打开命令窗口 , 输入node .\main.js启动抽奖游戏的后台服务 。 然后在浏览器地址栏输入localhost:8080/lucky , 效果如下:
文章插图
二、客户端向http服务器发送请求 , 并展示数据1. 抽奖客户端发送请求在scripts中新建gamemgr.js , 添加onsendhttpclick方法 , 当点击开始按钮的时候调用此方法 。 将gamemgr用户自定义脚本绑定到Canvas上 , 选中start按钮节点 , 修改start开始按钮节点上的Button组件的Click Events属性值为1 , 回车 , 然后将Canvas拖入 , 选中gamemgr , 选中onsendhttp_click方法 。 如此 , 单击开始按钮就会调用此方法 。
文章插图
1.`var http = require("http");`2.`var lucky_anim = require("lucky_anim");`3.`cc.Class({`4.`extends: cc.Component,`5.`properties: {`6.`disk: {`7.`type: lucky_anim,`8.`default: null,`9.`},`10.`},`11.`// 点击 开始 按钮 , 先后台发送http请求调用服务`12.`on_send_http_click(){`13.`// http标准库 -- > H5标准 查看http.js源码`14.`http.get("", "/lucky", null, function(err, ret){`15.`if(err){`16.`return;`17.`}`18.`ret = parseInt(ret);`19.`this.show_anim(ret); // 显示抽奖动画`20.`}.bind(this));`21.`},`22.`show_anim(ret) { // 显示抽奖动画`23.`// 抽奖盘 开始绘制`24.`this.disk.start_lucky_draw(ret);`25.`},`26.`});`
- 红米K40渲染图曝光:居中挖孔+后置四摄,这外观你觉得如何?
- 奋斗|该如何看待拼多多员工猝死:鼓励奋斗,也要保护好奋斗者
- 装机点不亮 如何简易排查硬件问题?
- 虾米音乐宣布关停!我的歌单如何导入QQ音乐、网易云音乐?
- 人脸识别设备主板如何选型 软硬整合大幅缩短开发时间
- Mini-LED产品效果究竟如何?
- 专家介绍如何判断智能手机被入侵:运行速度变慢、电池消耗过快以及卡顿
- 最便宜的骁龙888手机?红米K40曝光:这外观如何?
- 广色域还不够 投影如何实现精准色彩还原?
- 10nm进程受阻,芯片狂人梁孟松出走,中芯国际如何突破困境?