基于Node.js和Cocos Creator的开发【五,实现Socket通信】

一,后端的实现

后端安装nodejs-websocket模块,在命令行中输入以下命令:
npm install nodejs-websocket
即可完成nodejs-websocket的安装。
在httpServer.js中输入以下代码:

var ws = require('nodejs-websocket');

var server = ws.createServer(function (conn) {
    //处理消息
    conn.on('text', function (str) {
        conn.sendText('from server..');
    })
 
    conn.on("close", function (code, reason) {
        console.log("关闭连接");
    })
    conn.on("error", function (code, reason) {
        console.log("异常关闭");
    });
}).listen(8183);

至此,我们实现了在8183端口上的socket服务器功能。

二,前端的实现

Cocos Creator中,支持 Web 平台上最广泛使用的标准网络接口:

  • XMLHttpRequest:用于短连接
  • WebSocket:用于长连接
    在assets/Script/net目录下新建socket.js,输入以下代码:
var socket = cc.Class({
    ctor: function() {
        var ws = new WebSocket('ws://127.0.0.1:8183/');
        // 发起连接
        ws.onopen = function (event) {
            console.log("ws test 000 Send Text WS was opened.");
            ws.send('send text to server ...');
        };
        ws.onmessage = function (event) {
            console.log("ws test 001 response text msg: " + event.data);
        };
        ws.onerror = function (event) {
            console.log("ws test 002 Send Text fired an error");
        };
        ws.onclose = function (event) {
            console.log("ws test 003 WebSocket instance closed.");
        };

        this._ws = ws;
    }
});

module.exports = socket;

三,测试

在HelloWorld.js中引入模块:
var socket = require('socket');
在onLoad函数中加入以下一行代码:
var s = new socket();
即可测试前端和后端的连接。


代码在这儿

上一篇 实现用户登录

你可能感兴趣的:(基于Node.js和Cocos Creator的开发【五,实现Socket通信】)