cocos2d-js报错怎么cocos ipv6的解决办法

cocos2d-js websocket 发送错误的请求头 服务端使用的是wokerman?
苦逼团队通宵数天没解决。就想知道是cocos2dx的bug吗?求个解决方案&br&&br&后台用的是workerman, 在fps低的时候,workerman直接报错,然后自动连接断开。。&br&报错信息如下:&br&error opcode 15 and close websocket connection&br&error opcode 3 and close websocket connection&br&error opcode 13 and close websocket connection&br&error opcode 11 and close websocket connection&br&&br&&br&workerman官方的解释如下:&br&Websocket协议 Version 13 对opcode的定义&br&OPCODE:4位&br&解释PayloadData,如果接收到未知的opcode,接收端必须关闭连接。&br&0x0表示附加数据帧&br&0x1表示文本数据帧&br&0x2表示二进制数据帧&br&0x3-7暂时无定义,为以后的非控制帧保留&br&0x8表示连接关闭&br&0x9表示ping&br&0xA表示pong&br&0xB-F暂时无定义,为以后的控制帧保留&br&&br&客户端传来了opcode为0xB,这个是未知的opcode,所以关闭了连接。你可以查阅下客户端发这个opcode是什么意思,然后自己在协议中做下调整。&br&&br&&br&测试的是一个Android底端机,跑得时候基本fps只有30左右,因为是多人游戏,所以当玩家超过3个,fps继续下降,workerman报错更加频繁。&br&web平台正常,从未报错。ios偶尔报错。
苦逼团队通宵数天没解决。就想知道是cocos2dx的bug吗?求个解决方案后台用的是workerman, 在fps低的时候,workerman直接报错,然后自动连接断开。。报错信息如下:error opcode 15 and close websocket connectionerror opcode 3 and close websocket connectionerror opcode 13 and close websocket connectionerror opcode 11 and close websocket connectionworkerman官方的解释如下:Websocket协议 Version 13 对opcode的定义OPCODE:4位解释PayloadData,如果接收到未知的opcode,接收端必须关闭连接。0x0表示附加数据帧0x1表示文本数据帧0x2表示二进制数据帧0x3-7暂时无定义,为以后的非控制帧保留0x8表示连接关闭0x9表示ping0xA表示pong…
已有帐号?
无法登录?
社交帐号登录- [回帖奖励
Powered by
扫一扫 关注eoe官方微信cocos2d-x|LOFTER(乐乎) - 记录生活,发现同好
LOFTER for ipad —— 记录生活,发现同好
记录生活,发现同好
79位喜爱 #cocos2d-x 的小伙伴邀你来玩
查看高清大图
喜欢并收藏内容
关注达人获取动态
评论私信与同好交流
10秒注册,查看更多优质内容
网易公司版权所有 & ICP备:浙B2-增值电信业务经营许可证:浙B2-
{if x.type==1}
{if !!x.title}${x.title}{/if}
{if !!x.digest}${x.digest}{/if}
{if x.type==2}
{if x.type==3}
{if x.type==4}
加入 LOFTER 开通功能特权
查看高清大图
喜欢并收藏内容
关注达人获取动态
评论私信与同好交流博客访问: 5244
博文数量: 2
博客积分: 0
博客等级: 民兵
技术积分: 35
注册时间:
此人很懒,什么都没留下......
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: iOS平台
&& Cocos2D-x 2.0以上版本跨Win32、Android、iOS三个平台,本文介绍Cocos2D-x在这三个平台上如何搭建开发环境。
一、Windows开发环境配置
1、Visual Studio安装& &&& &&
&&&&&&&&Cocos2D-x支持Visual Studio的版本包括VS2008、VS2008 Express、VS2010和VS2012。本文选择VS2010作为开发环境,同时配合Visual Assist X。
2、Cocos2D-x安装与配置
&&&&& & (1)从Cocos2D-x官网()下载最新版本的Cocos2D-x(cocos2d-2.1rc0-x-2.1.3)。
&&&&& & (2)解压文件到指定目录下。
&&&&& & (3)双击运行目录下的install-templates-msvc.bat文件进行安装。
&&&&& & (4)双击对应开发工具的sln文件,VS2010对应的是cocos2d-win32.vc2010.sln文件,打开文件的同时也启动了相应的VS开发环境。
&&&&& & (5)编译运行自带的HelloCpp项目来验证Cocos2D-x的安装是否正确。右键单击选中HelloCpp项目,设置为启动项。
&&&&& & (6)单击Build按钮,构建Cocos2D-x项目,也可以单击Debug按钮,调试运行HelloCpp项目,效果如下图所示。
图1 HelloCpp效果图
3、Cocos2D-x工程目录
&&&&& & Cocos2D-x每个版本的工程目录会有所变化,&cocos2d-2.1rc0-x-2.1.3的目录如下图所示:
图2 Cocos2D-x工程目录
&&&&& & 可以看出工程目录包括4部分:
&&&&& & (1)project-common(公共部分)
&&&&& & libBox2D:物理引擎Box2D
&&&&& & libchipmunk:物理引擎Chipmunk
&&&&& & libcocos2d:引擎核心
&&&&& & libCocosDenshion:声音
&&&&& & libExtensions:扩展
&&&&& & (2)project-cpp(C++测试工程)
&&&&& & (3)project-js(JavaScript测试工程)
&&&&& & (4)project-lua(Lua测试工程)& &&& &&
4、新建项目及交叉编译
&&&&& & 新建项目的过程与新建VC项目的工程类似,不同的是选择Cocos-2d-x项目类型-->Cocos2d-win32 Application,在工程向导中可以选择使用的物理引擎、是否使用Cocos Denshion音乐模块、是否支持Lua脚本等,编译运行即可。
二、Android开发环境配置
&&&&& &&Android是Google推出的开源手机操作系统,早期以Java语言作为第三方应用的开发语言,直到2009年6月,发布了NDK(Native Develop Kit,原生态本地开发包),支持开发者使用C/C++语言开发Android应用程序。Android的开发环境至少需要Eclipse、Android SDK和NDK来支持C/C++应用开发。
1、Cocos2D-x软件安装与配置
&&&&& & (1)JDK:JDK(Java Development Kit)是Java开发工具,点击下载。
&&&&& & (2)Eclipse:支持Java和Android开发的开源集成开发工具,点击下载,建议下载,这样就不用安装CDT插件了。Eclipse是绿色版,解压后即可使用。
&&&&& & (3)ADT:ADT(Android Development Tools,Android开发插件)Android开发的Eclipse插件。
&&&&& & 使用Eclipse在线安装方式安装ADT:启动Eclipse,选择Help-->Install New Software,在Work with栏中输入网址http://dl-/android/eclipse,单击add按钮提取安装包列表,选择全部(开发工具和NDK插件),单击next-->next,选择accept licenses,单击finsh,开始安装,安装过程会比较长,请耐心等候。
&&&&& & (4)CDT:CDT(C++ Development Tools,C++开发插件)C++开发的Eclipse插件。
&&&&& & 直接安装Eclipse的C++版本,则跳过此步。下载地址为http://wiki.eclipse.org/CDT/User/DownloadCDTLatest,下载压缩包后,同样选择Help-->Install New Software,弹出相应界面后Add本地的CDT地址,即可安装。[/ 大主宰无弹窗]
&&&&& & 附注:(3)和(4)代表两种安装方式,这两种方式也适用于ADT的安装。
&&&&& & (5)Android SDK:Android开发工具,包括模拟器等。
&&&&& & 安装完ADT后,会弹出提示框让安装Android SDK,按照提示进行即可。
&&&&&&&&也可以手动下载,地址为/sdk/index.html,下载完后解压到某个目录下,选择Windows-->Preferences-->Android,在SDK Location中选择或输入Android SDK地址,单击Apply-->OK,完成Android SDK配置。
&&&&& & 找到刚才解压的目录,双击启动SDK Manager,选择安装Android的其它版本或相应工具。
&&&&& & (6)Android NDK:Android原生态本地开发包,辅助SDK进行编译开发,支持C/C++。
&&&&& &手动下载Android NDK,地址为。将NDK解压到某个目录下,选择Windows-->Preferences-->Android-->NDK,在NDK Location中输入NDK的地址,单击Apply-->OK,完成Android NDK配置。
&&&&& & (7)Cygwin:在Windows平台上运行的UNIX模拟环境,是Cygnus Solutions公司开发的自由软件。
&&&&& & Android NDK从r7开始,可以在编译时省去Cgywin。
&&&&&&&&(8)编译并运行HelloCpp项目。
&&&&& & &&&&& & (A)选择File-->New-->Project,在弹出的对话框中选择Android Project from Existing Code,选择项目路径cocos2d-2.1rc0-x-2.1.3\samples\Cpp\HelloCpp\proj.android,点击Finish完成项目加载。右键单击项目HelloCpp,选择Properties-->Builder-->New,在弹出的对话框中单击OK,在弹出的对话框中选择Main选项卡,然后分别单击Browse File System和Browse Workspace,分别选择ndk-build.cmd和项目路径,具体如下图:
图3 NDK配置
&&&&& & &&&&& & (B)在上图3中选择Refresh选项卡,勾选Refresh resources upon completion,选择Specific resources,单击Specify Resources弹出对话框,勾选HelloCpp,单击Finish-->OK即可。
&&&&&&&&&&&&& & (C)Cocos2D-x 2.0以上版本还需要设置NDK_MODULE_PATH环境变量,填写Cocos2D-x库路径和第三方库路径,中间用分号分隔,规则同Windows环境变量,在上图3中点击Environment选项卡,点击New,在Name中输入NDK_MODULE_PATH,在Value中输入E:\android\cocos2d-2.1rc0-x-2.1.3;E:\android\cocos2d-2.1rc0-x-2.1.3\cocos2dx\platform\third_party\android\prebuilt,然后一路单击OK即可。也可以编辑当前项目的jni文件夹下的Application.mk文件,在末尾添加上NDK_MODULE_PATH:=E:\android\cocos2d-2.1rc0-x-2.1.3;E:\android\cocos2d-2.1rc0-x-2.1.3\cocos2dx\platform\third_party\android\prebuilt即可。需要注意的是,路径中不能含有空格符,Windows用分号/Linux用冒号做分隔符。
&&&&& & &&&&& & (D)将NDK目录E:\android\android-ndk-r8e\sources\cxx-stl\gnu-libstdc++\4.7\libs\armeabi下的libgnustl_static.a文件复制到项目文件夹下E:\android\cocos2d-2.1rc0-x-2.1.3\samples\Cpp\HelloCpp\proj.android\obj\local\armeabi,之后右键项目选择runas-->Android Application运行,如果不出意外会出现如下warning:
&&&&&&&&&&&&&&&&Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkV
&&&&& & &&&&&&&&可以忽略之,不过觉得看着不爽,也可以如下解决之:
&&&&& & &&&&&&&&打开E:\android\android-ndk-r8e\build\core\add-application.mk,将第128行的__ndk_warning改为__ndk_info即可,但是后遗症是不再提示warning。
&&&&& & &&&&& & (E)配置好后,选择Project-->Clean,再选择Project-->Build,开始编译项目,则下面控制台会输出:
&&&&&&&&&&&&&&&&Install & & & &: libhellocpp.so => libs/armeabi/libhellocpp.so& & & &&
&&&&&&&&&&&&& & 编译成功。&&
& & & & 需要注意的是:所有组件的安装,包括cocos2d-x最好都放在非中文且目录无空格的路径下,否则会出现下面所示一类的错误:
&&&&&&&&Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.&&
2、Cocos2D-x工程目录
&&&&& & Cocos2D-x工程目录主要包括如下内容:
&&&&& & (1)src:工程目录下会有几个带有src的文件夹,分别包含各自的源文件,包括入口类Activity、处理声音和加速度传感器的类等。
&&&&& & (2)gen:自动生成的的R.java文件、BuildConfig.java文件等。
&&&&& & (3)assets:资源文件。
&&&&& & (4)bin:APK包文件等配置文件。
&&&&& & (5)jni:包括编译时使用的MK文件等。
&&&&& & (6)libs:库文件(.so文件)。
&&&&& & (7)obj:目标文件,包括.so、.o等文件。
&&&&& & (8)res:XML等配置文件。
3、新建项目及交叉编译
&&&&& & 新建项目需要用到Cygwin,具体步骤如下:
&&&&& & (1)安装Cygwin。从官网上下载并安装之,下载地址在。
&&&&& & (2)修改Cocos2D-x目录下的create-android-project.bat文件中Cygwin、Android SDK和Android NDK目录的位置:
&&&&&&&&:: modify it to work under your environment &
&&&&&&&&set _CYGBIN=C:\cygwin\bin
&&&&&&&&if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & pause & exit 4
&&&&&&&&:: modify it to work under your environment
&&&&&&&&set _ANDROIDTOOLS=C:\Users\ourgame\android-sdks\tools
&&&&&&&&if not exist "%_ANDROIDTOOLS%" echo Couldn't find android sdk tools at "%_ANDROIDTOOLS%" & pause & exit 5
&&&&&&&&:: modify it to work under your environment
&&&&&&&&set _NDKROOT=E:\android\android-ndk-r8e
&&&&&&&&if not exist "%_NDKROOT%" echo Couldn't find ndk at "%_NDKROOT%" & pause & exit 6
&&&&& & (3)双击执行create-android-project.bat文件,在命令行模式下输入项目路径和名称、SDK版本等,选择target id。
&&&&& & (4)编译运行项目,就能在E:\android\cocos2d-2.1rc0-x-2.1.3\samples\Cpp\HelloCpp\proj.android\bin目录下,看到HelloCpp.apk包了。
三、iOS开发环境配置
&&&&&&&&iOS是苹果公司开发的手持设备操作系统,最早发布于日的Macworld大会上,最初是为iPhone设计的,后来陆续支持iPod Touch、iPad以及Apple TV等苹果移动设备。iOS以Darwin为基础属于类UNIX系统,原名为iPhone OS,日WWDC大会上改名为iOS。
&&&&&&&&Xcode是苹果公司向开发人员提供的集成开发环境,类似于微软的VS,用于开发Mac OS应用程序。iOS SDK是iOS系统的开发工具,只要安装了Mac OS X Snow Leopard 10.6.2以上版本Mac OS操作系统,即可安装iOS SDK,可以使用iPhone模拟器进行调试或者使用真机进行调试。
&&&&&&&&在iOS上开发基于Cocos2D-x的应用程序也需要使用Xcode,点击这里下载安装文件,下载前需要注册苹果开发者,如果链接不好使也可以点击下载,下载后通过共享文件的方式将安装文件上传到虚拟机上(如何共享参看这篇拙文《》),双击DMG文件进行安装即可。
1、Cocos2D-x安装与配置
&&&&& & (1)将Cocos2D-x压缩包解压到某个目录下,便可以运行HelloWorld项目了。
&&&&& & (2)双击sample/Cpp/HelloCpp/proj.ios目录下的iOS工程文件(HelloCpp.xcodeproj),用Xcode打开HelloWorld项目,单击Run即可在iPhone模拟器和iPad模拟器上运行了,效果如下图所示:
图4 iPhone模拟器
&&&&& & (3)在Mac系统上安装Cocos2D-x模板。单击Finder-->前往-->实用工具-->终端以启动终端,切换到Cocos2D-x解压目录,输入如下命令安装Cocos2D-x模板:
&&&&& & sudo ./install-templates-xcode.sh
2、Cocos2D-x工程目录
&&&&& & Cocos2D-x工程目录如下图所示:
图5&Cocos2D-x工程目录&&&&& &&
&&&&& & Classes:Cocos2D-x游戏逻辑类,即我们编写的类文件。
&&&&& & Frameworks:引擎所使用的框架部分。
&&&&& & ios:iOS平台相关专用类。
&&&&& & Products:编译生成的包文件。
&&&&& & Resources:资源文件夹。
3、新建项目及交叉编译
&&&&& & (1)选择File-->New-->Project,弹出工程设置向导对话框,选择cocos2d-x,选择框架类型cocos2dx,点击next。
&&&&& & (2)输入产品名称world,Company Identifier(mancini),点击next。
&&&&& & (3)选择工程目录,点击create,创建工程,默认工程目录在桌面上。
&&&&& & (4)选择相应的模拟器,点击run,编译运行项目,效果图同图3。
四、用Doxygen生成Cocos2D-x文档
&&&&& & Doxygen是一种开源跨平台的工具,其功能是从源码中抽取类、方法、成员的注释,形成一个和源码配套的API帮助文档。Doxygen支持C、C++、Java、Objective-C等语言。Doxygen可以根据代码中的注释,按照规则生成相应的文档。Cocos2D-x代码依照其规则,并且提供了doxygen.cocos2d-x文件,这是Cocos2D-x代码的Doxygen配置文档,可以通过这个文件生成Cocos2D-x文档。
&&&&& & 点击下载Doxygen,根据需求选择版本下载,这里下载Windows安装版,安装完成后,启动Doxygen,选择File-->Open打开Cocos2D-x目录下的dosygen目录下的doxygen.cocos2d-x文件,选择Run选项卡,单击Run doxygen,运行并生成文档,Cocos2D-x\doxygen\html目录下的index.html文件即为Cocos2D-x文档。& &&& &&
阅读(3408) | 评论(0) | 转发(0) |
下一篇:没有了
相关热门文章
给主人留下些什么吧!~~
请登录后评论。& [常见错误 及 解决方案系列]USE ” cc.exports.* = value ” INSTEAD OF SET GLOBAL VARIABLE”
原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的常见错误 及 解决方案 系列]
博客地址:
Cocos2d-x 3.5的lua项目生成后,变成了MVC模式,并且,加入了一个全局变量的检测功能。也就是说,你不小心用了全局变量,他会提示你出错!
local temp = 1
print(temp)
local temp = 1
–这里写错了
print(temp)
然后,print结果就会不同,同时你还会创建一个 全局的 tepm 永远不会被释放。这种问题,在lua中很容易遇到(虽然现在有代码提示 还是不太容易出现,但是谁说的准呢!)。
所以,C2d加入了一个全局命名空间的检测,通过setmetatable的方式。该函数在
src/cocos/framework/init.lua
-- disable create unexpected global variable
function cc.disable_global()
setmetatable(__g, {
__newindex = function(_, name, value)
error(string.format(&USE \& cc.exports.%s = value \& INSTEAD OF SET GLOBAL VARIABLE&, name), 0)
if CC_DISABLE_GLOBAL then
cc.disable_global()
end&span style=&font-family:Afont-size:18color:#333333;&&&span style=&line-height: 26&&
&/span&&/span&
有效的帮助开发者避免上述错误!
那么如果我一定要用到全局变量才行呢?例如 require &socket& 的luasocket库
这个问题有若干种解决办法,
1、最简单粗暴的就是直接注释掉着一块。
2、将CC_DISABLE_GLOBAL设置为False
3、在mian.lua的 require &cocos.init&之前 require 所需的库和全局的变量
但是 如果是开发者自己需要使用全局变量。而不是其他库需要用到全局变量的话!
请使用使用官方推荐的方法cc.exports.* 来充当全局变量!
作者:qq 发表于 11:43:20 原文链接
阅读:30 评论:0 查看评论
最新发表文章

我要回帖

更多关于 cocos2d js 教程 的文章

 

随机推荐