cocos-lua的websocket简单叙述

WebSocket是html5新增的一种通信协议,目前流行的浏览器都会支持。
在cocos中的WebProxyTest.lua存在简单的websocket的使用方法,下面我就按照这个简单记录下,之后有会继续完善:
C++的文件存在引擎目录 /samples/TestCpp/C;asses/ExtensionsTest/NetworkTest/WebSocketTest.cpp文件

C++ cocos2d::network::WebSocket::Delegate定义使用WebSocket需要监听的回调通知接口。使用WebSocket的类,就需要puhlic继承Delegate。

写法:class WebSocketTestLayer : public cocos2d::Layer,public cocos2d::network::WebSocket::Delegate{}

接下来lua书写简单的WebSocket:

  -- WebSocket.org 提供的测试服务器 ws://echo.websocket.org

  local wsSendText   = cc.WebSocket:create("ws://echo.websocket.org")

   -- 触发WebSocket的链接服务区成功后WebSocket就会调用onOpen,通知客户的和服务器的已经成功的建立了链接通道。
   local function wsSendTextOpen(strData)
        print("wsSendTextOpen")
    end

    -- 服务器向客户端发送的数据(在当前的测试环境服务器下,服务器会把前端发送的数据转发回到客户端)
    local function wsSendTextMessage(strData)
        print("wsSendTextMessage:"..strData)
    end

    -- 不管是前端还是服务器关闭了WebSocket都会收到该回调,所以把wsSendText置空
    local function wsSendTextClose(strData)
        print("_wsiSendText websocket instance closed.")
        wsSendText = nil
    end

    -- 客户端请求错误的时候回调,可更具不同的错误码进行相应的处理
    local function wsSendTextError(strData)
        print("sendText Error was fired")
    end

    -- 注册回调以上的函数
    if nil ~= wsSendText then
        wsSendText:registerScriptHandler(wsSendTextOpen,cc.WEBSOCKET_OPEN)
        wsSendText:registerScriptHandler(wsSendTextMessage,cc.WEBSOCKET_MESSAGE)
        wsSendText:registerScriptHandler(wsSendTextClose,cc.WEBSOCKET_CLOSE)
        wsSendText:registerScriptHandler(wsSendTextError,cc.WEBSOCKET_ERROR)
    end

--  测试发送
    function self:TestSendMsg( )
        if wsSendText then
            local data = {}
            data.type = 1
            data.ID = "2028"
            data.Name = "牛彩瓷"
            local strData = json.encode(data)

            wsSendText:sendString(strData)
        end
    end

在lua中的send是不区分二进制和文本模式的统一使用 sendString();

在C++中:

文本模式:

_wsSend->send("Hello WebSocket");

二进制模式:

// 参数 二机制数据,和长度

_wsSend->send( (unsigned char*)buf,sizeof(buf) );
--------------------- 
作者:淡乄 
来源:CSDN 
原文:https://blog.csdn.net/erweimac/article/details/79754715 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值