WebSocket是一种在TCP连接上进行全双工通信的协议。做h5游戏的时候经常会用到。
概念就不进行讲解了。主要教大家怎么使用。内容比较基础,高手可以忽略。
其中为了讲得通俗易懂,描述得不一定完全准确,请大家谅解。
游戏客户端使用cocoscreator,服务器使用nodejs。通信主要使用websocket,消息协议使用的protobuf。
这里先教大家怎么使用的websocket和nodejs进行通信,后面再教大家使用protobuf将二者整合。
首先讲解cocoscreator使用websocket:
var websocket = new WebSocket(url);//创建一个websocket
websocket的数据传输有两种格式,一种是字符串,一种是二进制。
因为我们这里需要和protobuf进行整合,所以主要讲解以二进制方式传输数据。
websocket.binaryType = "arraybuffer";//设置binaryType,如果是字符串,则设置为"text"。
然后监听websocket事件,即设置时间回调函数。有onopen,onmessage,onerror,onclose。
onopen:在和服务器端建立连接后触发。
onmessage:在收到服务器端数据后触发。传统tcp长连接传输数据需要解决粘包问题,websocket不需要。
onclose:在和服务器端断开连接后触发。
onerror:出现某些错误会触发,比如服务器连接不上,传输数据错误等。
部分代码片段如下: