使用cocoscreator 1.9.1 + node.js + websocket实现,没有使用socket.io, 全部自己封装,长连接进行封装后可以和短连接使用方法一样,使用简单,方便以后开发网络游戏。
先上个效果图:
1、客户端:
主要就是聊天内容的显示,自动换行和背景扩展,代码大概如下:
1 | cc.Class({ |
网络部分分成了四层:
1、socket 封装基础的websocket, 这里是最底层,也是真正链接的开始
2、network 控制socket链接层,实现各回调接口
3、netproxy 封装各服务功能,把长连接变成短连接的请求方式
4、netprotocols 和服务器协商,确定每个请求的请求体格式和回复格式
各部分代码如下:
GameWebSocket.js:
1 | /** |
GameNetwork.js
1 | /** |
GameProtocols.js
1 | /** |
NetProxy.js
1 | /** |
2、服务端
使用express + express-ws组件,调用WSRouter的init初始化连接即可
1 | let expressWS = require('express-ws'); |
work.js
1 | module.exports = function(wsRouter, ws, msg){ |