[Cocos2d-x]在Cocos2d-x 3.x版本中如何通过WebSocket连接服务器进行数据传输
2015-01-13 21:17
645 查看
首先新建一个空的文件夹,通过npm安装
新建
通过
首先在头文件中include头文件:
实现WebSocket的委托:
四个委托中定义的函数接口以及一个用来连接的socketClient对象:
初始化client:
在cpp文件中实现这些函数:
还有一个使用SocketIO的方案,尚未尝试,明天测试一下:
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* _wsiClient;
初始化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.bytes; 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/html' }); res.end('<h1>Hello Socket Lover!</h1>'); }); 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()); },5000); // 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'); }); });
相关文章推荐
- [Cocos2d-x]在Cocos2d-x 3.x版本中如何通过WebSocket连接服务器进行数据传输
- Cocos2d-x 3.x如何通过WebSocket连接服务器进行数据传输
- [Cocos2d-x]在Cocos2d-x 3.x如何通过版本号WebSocket连接server数据的传输
- 如何使用MobaXterm与服务器建立连接并传输数据
- webSocket 如何实现服务器端 想页面推送实时数据? 动态数据?如何进行连接?
- Android客户端与服务器端通过SOCKET连接进行读写(将JSON数据转化为字符串后传输)
- 通过 JS 实现与后台进行连接,提交表单,将获取到的数据pos给服务器。
- quartz.net 3.x版本如何通过xml文件进行Job配置
- 解决: 关于配置局域网内通过一台WEB服务器连接到域服务器进行身份验证的IP设置
- 如何和远程数据库进行数据传输
- 新型D.o.S(伪造TCP连接进行数据传输的D.o.S)
- 在sql server里连接远程服务器,并进行创建和删除新数据库
- Android入门:通过JSON数据与服务器进行通信
- 程序使用 HTTP 协议和服务器交互主要是进行数据的提交,通常数据的提交是通过 GET 和 POST 两种方式来完成
- Android入门:通过XML数据与服务器进行通信
- 【方正中间件】用平台如何进行连远程服务器开发(.net版本/数据库SQLServer)
- Android入门:通过JSON数据与服务器进行通信
- 转 winfrom如何通过http来进行通信,并且通过传递json格式的数据可接受json格式的数据
- .NET中如何通过文本框中按回车键进行的提交数据
- .NET中如何通过文本框中按回车键进行的提交数据