cocos2d-x3.10 适配 IPV6

cocos 依赖的三方库涉及到 IPV6 问题的库为 curlwebsocket, cocos 自己提供的模块需要适配的有:

  1. HttpClient
  2. AssetsManagerEx
  3. SocketIO
  4. WebSocket
  5. Console
  6. ScriptingCore

如果你需要支持纯IPv6网络,只需要更新CURL和libwebsocket网络。

1. 下载 cocos2d-x-3rd-party-libs-bin

2. 更新 curl

拷贝解压出来的文件夹中的 curl 目录到cocos2d-x/external, 替换原来的 curl目录. 如果编译报错,则:

在 XCode 项目输找到 cocos2d_lib > external > curl > ios 目录上右键, 选择 Add Files to ‘cocos2d_lib.xcodeproj‘:

选中 libcrypto.a 和 libssl.a, targets 选择 libcocos2d iOS, 确定, 重新编译, 搞定.

3. 更新 websocket

和 curl 类似, 拷贝 cocos2d-x-3rd-party-libs 中的 websockets 目录到 cocos2d-x/external, 替换原来的 websockets 目录.

因为最新版的 websockets api 变化挺大, 所以我们需要使用 cocos 最新的WebSocket.h 和 WebSocket.cpp 替换 cocos2d-x/cocos/network 中的 WebSocket .

编译, 会有一处错误发生在 WebSocket::WebSocket() 中, 是和 Director::EVENT_RESET 相关的消息, 我们注释掉这段代码即可.

{    // reserve data buffer to avoid allocate memory frequently    _receivedData.reserve(WS_RESERVE_RECEIVE_BUFFER_SIZE);    if (__websocketInstances == nullptr)    {        __websocketInstances = new (std::nothrow) std::vector<WebSocket*>();    }

__websocketInstances->push_back(this);

//    std::shared_ptr<std::atomic<bool>> isDestroyed = _isDestroyed;//    _resetDirectorListener = Director::getInstance()->getEventDispatcher()->addCustomEventListener(Director::EVENT_RESET, [this, isDestroyed](EventCustom*){//        if (*isDestroyed)//            return;//        close();//    });}
时间: 2024-08-07 20:48:30

cocos2d-x3.10 适配 IPV6的相关文章

iOS应用适配IPV6

网络收集,连接如下: 针对苹果iOS最新审核要求为应用兼容IPv6 iOS应用支持IPV6,就那点事儿 iOS 适配iPV6的修改(AF及其他第三方库)

XMPP适配IPV6 (GCDAsyncSocket适配IPV6)

苹果公司要求在6月1号之后上架Appstore的应用必须通过ipv6兼容测试. 最近到了八月份,开始发现新上架的app没有通过,查看了下原因,说没有适配IPV6. 首先在本地搭建一个IPV6的测试环境,使用mac搭建详情请看 http://blog.csdn.net/yuwuchaio/article/details/51459705 如果项目用使用了XMPP 你会发现在IPV6环境下根本登陆不上了,究极原因,是因为XMPP使用了第三方的socket库:CocoaAsyncSocket,里面包含

IOS 10适配https 包含对于一些http的一些兼容配置

iOS10 从2017年1月1日起苹果提出所有新提交的App默认不允许使用NSAllowsArbitraryLoads来绕过ATS的限制,也就是说强制我们用HTTPS,如果不这样的话提交App可能会被拒绝. 通常你们公司会有两种情况: 1.我们公司没钱,自己想办法搞证书,哈哈哈.是不是很苦逼,然后你就自行进行配置:参考其他博客 2.你们公司很有钱,喔,大公司,like ours company: 首先我们去沃通购买了证书.老子看了半天,还要导入什么证书东西的(估计也是百度抄袭的),实际前端上什么

Solaris 10 disable ipv6

亲测有效:) http://thegeekdiary.com/how-to-remove-ipv6-in-solaris-11/

5秒钟解决环信ipv6适配问题-b

最近苹果要求app都要适配ipv6,我用的环信2x版本,据我所知环信2.2.5及之后版本才适配了ipv6.怎么检测你的app是否适配了apv6呢?可以自己搭配个ipv6环境,然后在ipv6环境下2.2.5以下版本无法登录.我的是2.2.2版本,之前我尝试把整个sdk换成2.2.5版本,但是因为项目需要改动的地方实在太多放弃了,后来想想既然适配ipv6,应该是和界面和环信用的第三方库之类的关系不大,应该和service有关于是我锁定了EaseMobSDK这个目录下的这三个文件夹,后来试了了下只要把

针对苹果iOS最新审核要求为应用兼容IPv6

最新消息 今天苹果推出重磅消息,6月1日后所有应用必须支持IPv6-only网络!!!当iOS开发者看到这个消息的第一反应可能就是IPv6是个什么鬼!!其实IPv6早在很早之前就已经推出,而且苹果在2015年的开发者大会上就已经提出苹果将力挺IPv6 官网链接 IPv6-only 说了这么多,IPv6到底是个什么鬼!我们来看看百度百科是怎么解释的: 我们再来看看官方给出的IPv6与IPv4的对比: 看不懂??,我们来解释下: 1.IPv6:避免了网络地址转换(NAT) 2.通过网络通过使用简化的

【转】Android屏幕适配全攻略(最权威的官方适配指导)

Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获! Android屏幕适配出现的原因 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi 解决方案 支持各种屏幕尺寸 使用wrap_contentmatch_parentweight 使用相对布局

提升iOS审核通过率之“IPv6兼容测试”

作者:jingle 腾讯系统测试工程师 商业转载请联系腾讯WeTest授权,非商业转载请注明出处. 原文链接:http://wetest.qq.com/lab/view/285.html 一.背景 在WWDC2015大会上苹果宣布iOS9将支持纯IPv6的网络服务.2016年6月1号,所有提交到AppStore上的应用都必须支持IPv6,否则将通不过审核.为了确保我们的app正常提交到苹果进行审核,不耽误项目进度,我们必须在提交到AppStore前对待提交app做IPv6兼容测试. 二.为什么要

Android屏幕适配全攻略(最权威的Google官方适配指导)

Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获! 出处:http://blog.csdn.net/zhaokaiqiang1992 Android屏幕适配出现的原因 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi 解决方案 支持各种屏幕尺