websocket如何区分用户_如何判断一个页面是否使用了WebSocket

本文详细介绍了在Cocos2d-x游戏引擎中使用WebSocket进行全双工通讯的过程,包括C++、Lua和JSB的实现方式,以及如何处理WebSocket的打开、消息、关闭和错误回调。
摘要由CSDN通过智能技术生成

2016-12-03 回答

websocket是html5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在websocket api中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

cocos2d-x引擎集成libwebsockets,并在libwebsockets的客户端api基础上封装了一层易用的接口,使得引擎在c++, js, lua层都能方便的使用websocket来进行游戏网络通讯。

引擎支持最新的websocket version 13。

在c++中使用

详细代码可参考引擎目录下的/samples/cpp/testcpp/classes/extensionstest/networktest/websockettest.cpp文件。

头文件中的准备工作

首先需要include websocket的头文件。

#include "network/websocket.h"

cocos2d::network::websocket::delegate定义了使用webscocket需要监听的回调通知接口。使用websocket的类,需要public继承这个delegate。

class websockettestlayer : public cocos2d::layer, public cocos2d::network::websocket::delegate

并override下面的4个接口:

virtual void onopen(cocos2d::network::websocket* ws);

virtual void onmessage(cocos2d::network::websocket* ws, const cocos2d::network::websocket::data& data);

virtual void onclose(cocos2d::network::websocket* ws);

virtual void onerror(cocos2d::network::websocket* ws, const cocos2d::network::websocket::errorcode& error);

后面我们再详细介绍每个回调接口的含义。

新建websocket并初始化

websocket.org 提供了一个专门用来测试websocket的服务器"ws://echo.websocket.org"。 测试代码以链接这个服务器为例,展示如何在cocos2d-x中使用websocket。

新建一个websocket:

cocos2d::network::websocket* _wsisendtext = new network::websocket();

init第一个参数是delegate,设置为this,第二个参数是服务器地址。 url中的"ws://"标识是websocket协议,加密的websocket为"wss://".

_wsisendtext->init(*this, "ws://echo.websocket.org")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值