1. server端环境搭建
服务器: ubuntu 16.04 LTS
代理: nginx/1.10.3 (Ubuntu)
数据库: 10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
1.1 安装MariaDB
sudo apt-get install mariadb-server
1.2 安装Nginx
sudo apt-get install nginx
1.3 安装nodejs4.6
下载nodejs包
cd /root/
wget http://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-x64.tar.gz
解压文件
tar -zvxf node-v4.6.0-linux-x64.tar.gz
拷贝到bin
cp ./node-v4.6.0-linux-x64/* /usr/local/sbin
1.4 mariaDB额外配置
mysql
在mariadb命令里输入:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
继续输入:
FLUSH PRIVILEGES;
1.5 设置防火墙
在命令行界面:
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
service iptables save
若提示iptables: unrecognized service
在ubuntu中由于不存在 /etc/init.d/iptales文件,所以无法使用service等命令来启动iptables,需要用modprobe命令。
输入命令:
apt-get install iptables
sudo modprobe ip_tables
(附)
关闭iptables(关闭命令要比启动复杂)
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
modprobe -r ip_tables
依次执行以上命令即可关闭iptables,否则在执行modproble -r ip_tables时将会提示
FATAL: Module ip_tables is in use.
sudo ufw reload
1.6 上传server代码
- 将server目录放至目录服务器(我使用的XShell系列XFtp)
- mariaDB导入sql文件
我在windows使用MySQL Workbench, 然后远程连接mysql, 这样一来就可以使用图形界面操作数据库了
首先, 需要在防火墙开启服务器3306端口访问
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo ufw reload
然后需要mysql通过访问权限:
vim /etc/mysql/mariadb.conf.d/50-server.cnf
注释掉
bind-address = 127.0.0.1
变成下面这样
#bind-address = 127.0.0.1
命令行打开mysql, 依次输入:
set password for 'root'@'localhost'=password('123456');
grant all on *.* to 'root'@'%' identified by '123456';
flush privileges;
之后, 在MySQL Workbench创建数据库名(按需取名), 并导入sql文件
sql文件目录在"项目目录\server\sql\db_babykylin.sql"
新增并修改configs文件
在"项目目录\server"目录下,
cp configs_win.js configs.js
vim configs.js
打开后, 修改HALL_IP为服务器地址ip, 修改mysql里的HOST, USER, PSWD, DB项
var HALL_IP = "127.0.0.1"; # 这里需要修改为服务器ip
var HALL_CLIENT_PORT = 9001;
var HALL_ROOM_PORT = 9002;
var ACCOUNT_PRI_KEY = "^&*#$%()@";
var ROOM_PRI_KEY = "~!@#$(*&^%$&";
var LOCAL_IP = 'localhost';
exports.mysql = function(){
return {
HOST:'127.0.0.1',
USER:'root', # 这里修改用户
PSWD:'', # 这里修改密码
DB:'db_babykylin', # 这里修改数据库名
PORT:3306,
}
}
...
运行项目: 项目目录\server\start_all.sh
2. 客户端环境搭建
2.1 下载安装 CocosCreator2.0.6
官网的下载仓库里有, 不多做介绍了
2.2 修改配置
打开client/assets/scripts/HTTP.js
#var URL = "http://127.0.0.1:9000";
#修改为你所在服务器的ip, 例如此处ip为47.106.141.249
var URL = "http://47.106.141.249:9000";
exports.master_url = null;
exports.url = null;
exports.token = null;
...
将上面的 URL 修改为 account_server 所在服务器的
1. 使用 Chrome 来进行调试会好很多
2. 使用 Browser 进行游戏时, 如果想多开, 可以像下面一样修改 URL 地址
http://localhost:7456/?account=asdf1
http://localhost:7456/?account=asdf2
http://localhost:7456/?account=asdf3
http://localhost:7456/?account=asdf4
程序会解析上面的 account 参数,进行游戏登陆
3. 打开登录
Cocos运行游戏 -> "登录游戏" -> 创建角色 -> 进入大厅
很顺畅的样子哦.
不过发现创建房间后进不去? 这是怎么一回事呢?
报错信息如下:
socket.io.js:1967 WebSocket connection to 'ws://127.0.0.1:10000/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 400
网上搜了一番
在configs.js中, 最后一行,暴露给客户端的接口 ,CLIENT_PORT 改成10001 改个端口解决了
记得把10001端口加入防火墙!!!
记得运行命令killall node先杀死node进程, 然后server./start_all.sh
最后, 终于能进房间玩麻将啦, 哈哈哈哈!!!!