1.Socket.io简介
Socket.io是一个实时通信的跨平台的框架
1.1 websocket 和 socket.io 之间的区别是什么
socket.io封装了websocket,同时包含了其它的连接方式,比如Ajax。原因在于不是所有的浏览器都支持websocket,通过socket.io的封装,你不用关心里面用了什么连接方式。你在任何浏览器里都可以使用socket.io来建立异步的连接。socket.io包含了服务端和客户端的库,如果在浏览器中使用了socket.io的js,服务端也必须同样适用。如果你很清楚你需要的就是websocket,那可以直接使用websocket。
2. 服务器端Windows安装Node.js Express Socket.io
2.1 下载Node.js
官网下载最新版http://nodejs.cn/
2.2 打开cmd
2.2.1 下载Express
npm install -g express
2.2.2 下载Socket.io
npm install -g socket.io
3. Creator与服务器通信测试
3.1 测试场景
3.2 客户端脚本
我是挂载在Canvas上,也可以选择直接挂载在Label上。
onLoad: function () {
let self = this;
if (cc.sys.isNative) {
window.io = SocketIO.connect;
} else {
require('socket.io');
}
var socket = io('IP:端口');
socket.on('hello', function (msg) {
self.label.string = msg;
});
},
记得下载socket.io并导入为插件
3.3 服务器脚本(任意位置存放)
let app = require('express')();
let server = require('http').Server(app);
let io =require('socket.io')(server);
server.listen(4747,function(){
console.log('listening on:端口');
});
io.on ('connection',function(socket){
console.log('someone connected');
socket.emit('hello','success');
});
在服务端脚本存放的位置打开cmd
输入
npm link express
输入
npm link socket.io
输入
node test-server.js
4. 总结
不同的环境配置网络连接不同,要善于抓包发现问题。
不过也从侧面看出cocos creator不是很适合做联网游戏,调试是真的恶心。
本教程部分素材来源于网络。
附上监听小程序,测试网络