文章中心 -> 软件使用

文章正文

 青瓷引擎官方插件服务器通讯提供与服务器的通讯功能,包含 http 与 websocket 两种通讯方式。该插件需要配合简易服务器使用。以下为详细介绍:

  • 插件面板



    其中 Url 用于填写服务器的地址

    将该插件挂载到任一个 node 节点上,即可通过该节点进行服务器通讯。
  • HTTP 通信方式

    使用 post 方式发送 json 数据给服务器
    post 的具体 url 地址为面板上的 Url + "/cmd"
    contentType 为 application/json;charset=UTF-8
    数据包如下所示:

    POST http://localhost:8900/cmd HTTP/1.1
    Host: localhost:8900
    Proxy-Connection: keep-alive
    Content-Length: 14
    Cache-Control: no-cache
    Origin: chrome-extension://gigaangkijllnhikjjhfmpjkddjphlie
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.8 Safari/537.36
    Content-Type: application/json
    Accept: */*
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.8

    {"cmd":"TEST"}
  • websocket 通信方式

    使用 socket.io 库实现 websocket
  • HTTP API

    sendMessage
    (node, cmd, jsonData, resCallback)
    发送自定义 http 消息给服务器。


    login
    (node, username, password, authInfo, resCallback)
    发送 http 登录消息给服务器,内部通过 sendMessage(node, 'LOGIN' ....) 方法发送消息。


    logout(node, username, password, authInfo, saveData, resCallback)
    发送 http 登出消息给服务器,内部通过 sendMessage(node, 'LOGOUT' ....) 方法发送消息。

  • SOCKET API

    registerSocketCmd
    (node, cmd, func)
    注册接收指定 socket 消息的处理函数


    socketConnect(node, [opts])
    连接 socket 服务器


    sendSocketMessage(node, cmd, ...)
    发送定义的 socket 消息给服务器。

    返回值为 true 表示发送成功,否则发送失败
  • SOCKET 事件

    onConnect

    新连接创建的事件。
    原型为:function(node)

    onDisconnect
    连接断开的事件。
    原型为:function(node)

    onError
    连接发生错误的事件。
    原型为:function(node, err)
  • http 范例

    // send custom message
    qc.ServerCommunicate.sendMessage(this.gameObject, "TEST", {"data":"test"}, callback);

    // login
    qc.ServerCommunicate.login(this.gameObject, "testuser", "testpassword", {}, callback);

    // logout
    qc.ServerCommunicate.logout(this.gameObject, "testuser", "testpassword", {}, {"data":"savedata"}, callback);
  • websocket 范例

    // register command handler
    qc.ServerCommunicate.registerSocketCmd(this.gameObject, 'MSG_TEST_SOCKET', function(socketNode, para1, para2, para3){
    console.log(socketNode, para1, para2, para3);
    })

    // connect socket server
    qc.ServerCommunicate.socketConnect(this.gameObject);

    // After socket connected, we can send command to server like this
    qc.ServerCommunicate.sendSocketMessage(this.gameObject, 'TEST_SOCKET', 'para1', 2, { value : 'test'} );

文章来自绿盟(xDowns.com)转载请注明来路。



上一篇文章:如何使用青瓷引擎官方插件之微信接口 []