cocos2d-x3.5的cocos socket.ioo是什么版本

今天看啥 热点:
[Cocos2d-x]在Cocos2d-x 3.x版本中如何通过WebSocket连接服务器进行数据传输
WebSocket首先新建一个空的文件夹,通过npm安装nodejs-websocket:npm install nodejs-websocket
新建app.js文件:var ws = require(&nodejs-websocket&);
ws.createServer(function(conn){
conn.on(&text&, function (str) {
console.log(&get the message: &+str);
conn.sendText(&the server got the message&);
conn.on(&close&, function (code, reason) {
console.log(&connection closed&);
conn.on(&error&, function (code, reason) {
console.log(&an error !&);
}).listen(8001);
通过node app.js启动,这样服务器就搭建好了。Cocos2d-x首先在头文件中include头文件:
实现WebSocket的委托:class HelloWorld : public cocos2d::Layer,public cocos2d::network::WebSocket::Delegate
四个委托中定义的函数接口以及一个用来连接的socketClient对象:
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);
cocos2d::network::WebSocket* _wsiC
初始化client:_wsiClient = new cocos2d::network::WebSocket();
_wsiClient-&init(*this, &ws://localhost:8001&);
在cpp文件中实现这些函数:
void HelloWorld::onOpen(cocos2d::network::WebSocket* ws)
CCLOG(&OnOpen&);
void HelloWorld::onMessage(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::Data& data)
std::string textStr = data.
textStr.c_str();
CCLOG(textStr.c_str());
void HelloWorld::onClose(cocos2d::network::WebSocket* ws)
if (ws == _wsiClient)
_wsiClient = NULL;
CC_SAFE_DELETE(ws);
CCLOG(&onClose&);
void HelloWorld::onError(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::ErrorCode& error)
if (ws == _wsiClient)
char buf[100] = {0};
sprintf(buf, &an error was fired, code: %d&, error);
CCLOG(&Error was fired, error code: %d&, error);
还有一个使用SocketIO的方案,尚未尝试,明天测试一下:
var http = require('http'), io = require('socket.io');
var server = http.createServer(function(req, res){
res.writeHead(200,{ 'Content-Type': 'text/html' });
res.end('&h1&Hello Socket Lover!&/h1&');
server.listen(8080);
var socket = io.listen(server);
socket.on('connection', function(client){
var interval = setInterval(function() {
client.send('This is a message from the server!
' + new Date().getTime());
client.on('message',function(event){
console.log('Received message from client!',event);
client.on('disconnect',function(){
clearInterval(interval);
console.log('Server has disconnected');
暂无相关文章
相关搜索:
相关阅读:
相关频道:
Android教程最近更新[Cocos2d-x]在Cocos2d-x 3.x版本中如何通过WebSocket连接服务器进行数据传输
WebSocket首先新建一个空的文件夹,通过npm安装nodejs-websocket:npm install nodejs-websocket
新建app.js文件:var ws = require("nodejs-websocket");
ws.createServer(function(conn){
conn.on("text", function (str) {
console.log("get the message: "+str);
conn.sendText("the server got the message");
conn.on("close", function (code, reason) {
console.log("connection closed");
conn.on("error", function (code, reason) {
console.log("an error !");
}).listen(8001);
通过node app.js启动,这样服务器就搭建好了。Cocos2d-x首先在头文件中include头文件:#include "network/WebSocket.h"
实现WebSocket的委托:class HelloWorld : public cocos2d::Layer,public cocos2d::network::WebSocket::Delegate
四个委托中定义的函数接口以及一个用来连接的socketClient对象:// for virtual function in websocket delegate
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);
// the websocket io client
cocos2d::network::WebSocket* _wsiC
初始化client:_wsiClient = new cocos2d::network::WebSocket();
_wsiClient->init(*this, "ws://localhost:8001");
在cpp文件中实现这些函数:// 开始socket连接
void HelloWorld::onOpen(cocos2d::network::WebSocket* ws)
CCLOG("OnOpen");
// 接收到了消息
void HelloWorld::onMessage(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::Data& data)
std::string textStr = data.
textStr.c_str();
CCLOG(textStr.c_str());
// 连接关闭
void HelloWorld::onClose(cocos2d::network::WebSocket* ws)
if (ws == _wsiClient)
_wsiClient = NULL;
CC_SAFE_DELETE(ws);
CCLOG("onClose");
// 遇到错误
void HelloWorld::onError(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::ErrorCode& error)
if (ws == _wsiClient)
char buf[100] = {0};
sprintf(buf, "an error was fired, code: %d", error);
CCLOG("Error was fired, error code: %d", error);
还有一个使用SocketIO的方案,尚未尝试,明天测试一下:// Require HTTP module (to start server) and Socket.IO
var http = require('http'), io = require('socket.io');
// Start the server at port 8080
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(200,{ 'Content-Type': 'text/' });
res.end('Hello Socket Lover!');
server.listen(8080);
// Create a Socket.IO instance, passing it our server
var socket = io.listen(server);
// Add a connect listener
socket.on('connection', function(client){
// Create periodical which ends a message to the client every 5 seconds
var interval = setInterval(function() {
client.send('This is a message from the server!
' + new Date().getTime());
// Success!
Now listen to messages to be received
client.on('message',function(event){
console.log('Received message from client!',event);
client.on('disconnect',function(){
clearInterval(interval);
console.log('Server has disconnected');
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'您所在的位置: &
15.2.2 Cocos2d-JS的Socket.IO客户端(2)
15.2.2 Cocos2d-JS的Socket.IO客户端(2)
清华大学出版社
《Cocos2d- x实战:JS卷――Cocos2d-JS开发》第15章基于Node.js的Socket.IO网络通信,本章我们给大家推荐更加轻便的通信方式Socket.IO,它是基于Node.js技术,随着Node.js技术蓬勃发展,Socket.IO通信越来越受到广大开发人员的青睐。本节为大家介绍Cocos2d-JS的Socket.IO客户端。
15.2.2 Cocos2d-JS的Socket.IO客户端(2)
我们在第①行&modules&配置中添加external模块,external模块包含了Socket.IO等子模块。
下面我们看看整个实例的运行情况。首先我们需要启动服务器。通过DOS终端窗口进入app.js文件所在的目录,运行指令:node app.js,启动服务器。
客户端与服务器交换分为两个过程:Cocos2d-JS客户端启动和点击&Send Message&菜单。
1、Cocos2d-JS客户端启动
启动Cocos2d-JS客户端程序,场景启动后的界面如图15-5所示。场景启动后与服务器建立Socket连接,Socket状态显示在场景上的标签内。
我们虽然在标签上只看到最后的内容是&Cocos2d-JS Client1 received message.&,但实际上经过了onConnect和onMessage两个状态的变化。客户端日志输出结果:
JS:&connect&called.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&① &SIOClientImpl::onMessage&received:&3:::Hello&Cocos2d-JS &Message&received:&Hello&Cocos2d-JS& &&JS:&Cocos2d-JS&Client1&message&received:&Hello&Cocos2d-JS&&&&&&&&&&&&&&&&&&&&&&&② &SIOClientImpl::onMessage&received:&2::&
上面日志第①行是connect事件触发时候输出的,第②行日志是message事件触发时候输出的,其它日志是基类输出的。
Socket连接过程中服务器端日志信息如图15-6所示。
在日志信息中的debug - websocket writing 3:::Hello Cocos2d-JS说明服务器端向客户端发出过Hello Cocos2d-JS消息。对应在客户端会触发message事件。
2、点击Send Message菜单项
客户端启动后,我们可以点击Send Message菜单项,向服务器发出&Hello Socket.IO!&消息和触发服务器callServerEvent事件。客户端相关的日志信息如下:
JS:&onMenuCallback &sending&message:&3:::Hello&Socket.IO!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&① &emitting&event&with&data:&5:::{&name&:&callServerEvent&,&args&:{&message&:&Hello&Server.&}}&&&&&② &SIOClientImpl::onMessage&received:&5:::{&name&:&callClientEvent&,&args&:[{&message&:&Hello&Client.&}]} &Event&Received&with&data:&{&name&:&callClientEvent&,&args&:[{&message&:&Hello&Client.&}]}& &&SIOClient::fireEvent&called&with&event&name:&callClientEvent&and&data:&{&name&:&callClientEvent&,&args&:[{&message&:&Hello&Client.&}]} &JS:&Server&CallBack:&Cocos2d-JS&Client1Data&:{&name&:&callClientEvent&,&args&:[{&message&:&Hello&Client.&}]}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&③ &SIOClient::fireEvent&no&native&event&with&name&callClientEvent&found&
其中第①行日志信息是向服务器发出&Hello Socket.IO!&消息时候输出的,第②行日志信息是触发服务器callServerEvent事件时候输出的。还有第③行代码是从服务器返回数据时候回调callClientEvent事件时候输出的。
服务器端相关的日志信息如下:
Hello&Socket.IO!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&① &{&message:&'Hello&&&&Server.'&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&② &debug&-&websocket&writing&5:::{&name&:&callClientEvent&,&args&:[{&message&:&Hello&Client.&}]}&&&③&
日志中的第①和第②行代码是服务器端通过console.log(data)语句输出的结果,第③行代码是底层WebSocket输出的结果,从这个消息{&name&:&callClientEvent&,&args&:[{&message&:&Hello Client.&}]}结构上看name描述的是事件名,args是事件参数,这样的消息服务器端会触发如下代码:
socket.on('callServerEvent',&function&(data)& &{&&&&&&});&
其中callServerEvent是name描述的内容,data参数是args 描述的[{&message&:&Hello Client.&}]内容。
喜欢的朋友可以添加我们的微信账号:
51CTO读书频道二维码
51CTO读书频道活动讨论群:
【责任编辑: TEL:(010)】&&&&&&
关于&&&&&&的更多文章
Cocos2d是一个开源框架,用于构建2D游戏、演示程序和其他图形界
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
讲师: 22人学习过讲师: 7人学习过讲师: 12人学习过
作为《谁说菜鸟不会数据分析》家族的新成员,本书依然
《设计,在人人设计的时代:社会创新设计导论》作者Ez
《如虎添翼!数据处理的SPSS和SAS EG实现(第2版)》
本书全面系统地概括了计算机网络的基本理论,详细阐述了OSI模型与网络协议、网络规划与综合布线、对等网络与服务器/客户端网络、
51CTO旗下网站&cocos2d-x html5 集成pomelo socket io 客户端
秒后自动跳转到登录页
(奖励5下载豆)
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
《七天学会NodeJS》
Extjs核心API详解【
[JSON] JavaScript
[d3.js] d3.js 数据
JavaScript网页特效
[JavaScript] JavaS
[Web Framework] 七
cocos2d-x html5 集成pomelo socket io 客户端
上传时间:
技术分类:
资源评价:
(0位用户参与评价)
已被下载&17&次
cocos2d-x html5 集成pomelo socket io 客户端
本资料共包含以下附件:
cocos2d-x html5 集成pomelo socket io 客户端.zip
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
下载1631次
下载1550次
下载2303次
下载2580次
下载2750次
下载3658次
下载1362次
下载2238次
相关专题推荐
自从2010年,Google的吃豆人让许多人
本专题讲解JavaScript视频教程,其中
Javascript是web开发中应用最早、发展
本专题为韩顺平老师讲解的html+css+j
本专题收集了大量经典的JS网页特效代
本专题为一国外网站出品的Node JS教学
本专题为北风网李炎恢主讲的JavaScri
专题包括JS学前预热课程,JS基础教程
本视频由尚学堂白鹤翔老师录制,2013
本专题为2010年北风网CJ讲师JavaScri
AngularJS是为了克服HTML在构建应用上
ExtJS是一种主要用于创建前端用户界面
JavaScript网页特效视频教程,讲解细
Javascript是一种由Netscape的LiveSc
捷训Node.js入门教学视频,对初学者来
本套视频教程详细的讲解了javascript
本周下载热点
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理

我要回帖

更多关于 cocos2dx lua socket 的文章

 

随机推荐