cocos中 使用websocket

C++版本

cocos2d::network::WebSocket::Delegate定义了使用WebScocket需要监听的回调通知接口。需要继承实现这个接口。

WebSocket对象一共支持四个消息 onopen, onmessage, onclose和onerror。

virtual void onOpen(WebSocket* ws) = 0; 

当客户端和服务器完成握手连接后,此函数被调用,意味着WebSocket连接准备好了发送数据。

 当客户端和WebSocket服务器连接成功后,会触发onOpen消息。ws是所连接的WebSocket对象。

 virtual void onMessage(WebSocket* ws, const Data& data) = 0; 

当客户端接收到WebSocketServer发送过来的数据时,就会触发onmessage消息。

ws是所连接的WebSocket对象。

data 消息数据。

virtual void onClose(WebSocket* ws) = 0;

当连接的WebSocket对象想要关闭或者协议根本不能使用,并且当前的_readyState是State::CLOSING,这个函数被调用

ws是所连接的WebSocket对象。

virtual void onError(WebSocket* ws, const ErrorCode& error) = 0;

在以下四种情况下此函数被调用:

1、客户端连接失败;

2、客户端的request连接不能与服务器建立handshake

3. 在此调用之后,协议不能使用 ,并且当前_readyState is State::CONNECTING.
4. when a socket descriptor needs to be removed from an external polling array. in is again the struct libwebsocket_pollargs containing the fd member to be removed. If you are using the internal polling loop, you can just ignore it and current _readyState is State::CONNECTING.
ws The WebSocket object connected.
error WebSocket::ErrorCode enum,would be ErrorCode::TIME_OUT or ErrorCode::CONNECTION_FAILURE.


 class WebSocketTest : public TestCase, public cocos2d::network::WebSocket::Delegate

WebSocketTest 继承与上述Delegate接口。

重写上述四个函数:

virtual void onOpen(cocos2d::network::WebSocket* ws)override;
    virtual void onMessage(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::Data& data)override;
    virtual void onClose(cocos2d::network::WebSocket* ws)override;
    virtual void onError(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::ErrorCode& error)override;



你可能感兴趣的:(cocos中 使用websocket)