自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒风的技术博客

记录开发,分享技术

  • 博客(395)
  • 资源 (15)
  • 收藏
  • 关注

原创 手游服务器之数据IO进化

这里数据IO是指游戏数据存盘和读取。如果IO处理不好,服务器在IO时会导致,游戏卡顿较长的时间,严重影响游戏体验。最近服务端刚好对IO这一块做了优化,把优化过程记录一下。一 原始版刚开始立项的时候,只是做了一个Demo,加上也刚开始做服务端,只是做了一个仅仅能够测试用的服务器。当时是在每个场景对象area中添加了一个users对象,通过uid来保存每个玩家的数据。当玩家

2015-08-19 20:16:58 3540 4

原创 pomelo服务器集群中集成http服务器

项目接近尾声,这个周在弄运维相关的一些东西。运维部门需要一个http服务器,来查询服务器及玩家的一些数据。在做的过程中考虑的是两个问题:1 这个http服务器挂在什么地方?为了不污染pemelo的代码,做了一个httpServer的组件,在gate服务器中加载。因为其他服务器可能有多个,这样会重复加载httpServer组件,导致端口重复监听。2 多个area服

2015-08-19 18:04:34 4750 1

原创 五 cocos2dx(3.X)中调用OpenGL

最近几个月一直在用pomelo写后端,现在项目接近尾声,终于有时间继续研究下OpenGL相关的东西了。OpenGL本身是跨平台的,但是每个平台的开发环境并不一样,把OpenGL的代码放在cocos里面运行就方便多了。下面就是一个最简单的示例,在cocos中调用OpenGL方法,将窗口设置成蓝色。首先新建一个cocos项目,删掉不需要的示例代码, 重写draw和onDraw方法

2015-08-03 12:05:35 1890

原创 python微框架Bottle(http)

环境:win7系统Python2.7一 背景和概述目前项目中需要添加一个激活码功能,打算单独弄一个http服务器来写。因为之前的游戏中已经有了一套完整的激活码生成工具和验证http服务器,所以直接拿过来使用了。都是用Python写的,http服务器用到了Python微框架Bottle。Bottle是一个非常精致的WSGI框架,它提供了 Python We

2015-07-06 20:51:25 3848 2

原创 JavaScript中字符串去掉特殊字符和转义字符

最近游戏的基本功能都已经开发完成了,再弄登录注册这一块时,用户名需要去掉字符串中的特殊字符和转义字符,代码如下:/*** * 去掉字符串中的特殊字符 */var excludeSpecial = function(s) { // 去掉转义字符 s = s.replace(/[\'\"\\\/\b\f\n\r\t]/g, ''); // 去掉特殊字符 s =

2015-07-04 16:17:35 44256 3

原创 pomelo添加定时任务

需求:在arena服务器下增加一个rank定时任务,每一分钟对对玩家进行一次排行。首先在game-server/app/servers/arena目录下增加cron目录,在game-server/app/servers/arena/cron目录下编写具体的执行的任务的代码rankCron.js,例如:var utils = require('../../../util/util

2015-06-26 21:16:40 3990 3

原创 pomelo生命周期回调和组件添加

一 生命周期回调生命周期回调能够让开发者在不同类型的服务器生命周期中进行具体操作。提供的生命周期回调函数包括:beforeStartup,afterStartup,beforeShutdown,afterStartAll。其具体的功能说明如下:beforeStartup(app, cb)before application start components call

2015-06-23 09:56:28 2875

原创 4 Swift函数

一 函数定义func funcName(arg1:type, arg2:type, ...)->type{// function bodyreturn xxx}说明:func 函数生命关键字,函数类型->type 生命返回值类型示例:func sayHello(personName: String) -> String { let gre

2015-06-22 15:33:59 989

原创 Debian下MySQL源码安装

注:需要root权限一 数据库安装1 安装依赖cmake、g++、libncurses5-dev直接使用apt-get install安装即可2 创建好用户和目录groupadd mysql # 添加用户组useradd -r -g mysql mysql # 添加用户mkdir -p /usr/local/mysql # 创建安装目录chown -

2015-05-23 23:17:51 3041

原创 debian7中文支持

1 安装localesapt-get install locales2 选择语言包dpkg-reconfigure locales在所有的语言包选择en_US.ISO-8859-1和zh_CN.GBK。其他en_US和zh_CN打头的也选上。然后选择zh_CN.GBK为默认的LOCALE,则系统为中文界面(这里也可以选en_US.ISO,使系统为英文界面)。3

2015-05-23 22:38:24 1355

原创 JavaScript使用小技巧

1 underfined、null、0、false、NaN、空字符串的逻辑结果均为false2 从数组中随机获取成员var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119];var  randomItem = items[Math.floor(Math.random() * items

2015-05-22 21:15:30 890

原创 服务端开发笔记三:pemelo开发过程中遇到的问题

一 登录顶号问题:首先需要弄明白的是,一个客户端只有一个pomelo实例。当用户登录之后,不退出,重启客户端。服务器检测到玩家已经登录,会将之前的登录踢下线,客户端会触发disconnect事件,在disconnect中断开pomelo链接。这样导致当前的链接也被断掉了。解决方案:目前处理方式是在disconnect中不断开链接。但这样处理有个问题,当服务器链接

2015-05-22 19:35:28 2024

原创 Google Chrome开发者工具基本使用方法

最近在用pomelo开发游戏的服务端,发现每添加一条协议都要重新运行游戏特别麻烦,就自己动手谢了一个网页的客户端,来调试协议,主要用到的工具Google Chrome浏览器的开发者工具。一 打开方式F12Ctrl+Shift+b/i/j二 主要窗口1 Consolejs代码中使用console.debug/console.log输出的信息,会显示在这里。

2015-05-22 13:06:07 4885

原创 Linux下Pomelo环境配置

Pomelo文档:https://github.com/NetEase/pomelo/wikihttps://github.com/NetEase/pomelo/wiki/Home-in-Chinese  Pomelo 安装文档:https://github.com/joyent/node/wiki/Installation

2015-05-19 21:32:25 3806

原创 Node.js异步管理工具Async

async.map(['file1','file2','file3'], fs.stat, function(err, results){ // results is now an array of stats for each file});Async 是一个为 Node.js 设计的(也可以直接在浏览器中使用)工具模块,它提供了直接而强大的 JavaScript 异步功能。

2015-05-12 12:36:47 1434

原创 在cocos2d-js中使用pomelo

一 下载安装nodejs下载地址:https://nodejs.org/#nodejs默认安装了npm工具pomelo是基于nodejs,会用到很多nodejs中的代码。另外还需要用到npm工具。二 安装git参考github官网:https://help.github.com/articles/set-up-git/npm工具会用到git三

2015-05-08 16:32:14 3407

原创 Javascript函数调用隐式对象arguments

Js在函数调用时会创建一个隐式的的对象arguments。arguments包含了函数调用时实际传递给函数的参数数组对象。App = {};App.fun0 = function(){ console.log(arguments)};App.fun1 = function(arg1){ console.log(arguments)};App.fun2 =

2015-05-07 12:09:31 1923

原创 服务端开发笔记二:基于pomelo的分布式手游架构

经过了一个周的时间,新项目的基本结构已经大体确定,拿来给大家分享。一 基础概念在说明手游服务器架构之前,一下几点须知。1 我们的服务器集群分为前端服务器和后端服务器。前端服务器:负责接收前端请求,实际上只有两个gate和connector;后端服务器:负责后端服务器相互调用,如auth,area;虽然在我们写路由的时间直接写的是area中handler下文件中的方法

2015-05-06 21:06:58 4675 2

原创 pomelo的push机制(channel)和源码解读

原文来自:http://write.blog.csdn.net/postedit/45499665尊重原创,转载请注明出处,谢谢!pomelo跟客户端的通讯分为四种: request, response, notify, push。前面三种都可是使用pomelo.request实现, 这里只看push是如何实现的。一 ChannelServiceChannelS

2015-05-05 14:42:43 11396 1

原创 nodejs的进程process

process是一个全局变量,可以直接调用。process的属性,如下:version:包含当前node实例的版本号;installPrefix:包含安装路径;platform:列举node运行的操作系统的环境,只会显示内核相关的信息,如:linux2, darwin,而不是“Redhat ES3” ,“Windows 7”,“OSX 10.7”等;pid:获取进程id;t

2015-04-30 16:40:00 4278

原创 nodejs的事件EventEmitter

直接上代码:// 得到EventEmitter对象var EventEmitter = require('events').EventEmitter;var eventEmitter = new EventEmitter();var EVENT_NAME = 'some_event'; // 事件名// ***************************************

2015-04-30 14:58:36 1689

原创 szrz工具安装

sz:将选定的文件发送到本地机器rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具,windows端需要支持ZModem的telnet/ssh客户端,例如:SecureCRT优点:比ftp命令方便,而且服务器不用打开FTP服务。安装命令:sudo apt-get i

2015-04-30 11:33:54 5272

原创 vim使用手册vimtutor学习笔记

lesson 1-----------------------------------------------------------1 光标移动:    kh   +   l    j# 方向键也可以使用2 不保存退出:q!q - quit3 删除字符:x4 插入模式:ii - insert5 正常模式:ES

2015-04-28 12:52:53 1451

原创 服务端开发笔记一:服务器架构探索

一 背景在网易的第一个项目《恶魔不要啊》到现在基本结束了,马上要开新项目了。下一个项目在开启之前打算先做一个测试项目,因为目下HTML5游戏特别火,下个项目需要支持HTML5。目前国内可以选择的有cocos2d-js和egret,这个测试项目同事有这两个引擎开发,对比一下两个引擎,看看选哪个比较合适。之前一直做前端,下个项目打算转后端了,下面是我们这个测试项目用的服务器架构。

2015-04-28 12:20:13 1663

原创 四 OpenGL中的变换及示例

一 视点变换相机位置(视点)的变换void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,    GLdouble centerx,GLdouble centery, GLdouble centerz ,    GLdouble upx,GLdouble upy,GLdouble upz)二 模型变换模型位置

2015-04-23 19:47:15 1418

原创 三 OpenGL常见平面图形绘制代码

// 代码模板#include void displayFunc(){ glClearColor(0.0f, 0.0f, 0.0f, 0.0f);// 在RGB模式下,使用glClearColor清空之后画布的颜色 glClear(GL_COLOR_BUFFER_BIT);// 清空画布 glColor3f(1.0f, 0.0f, 0.0f);// 设置画笔颜色

2015-04-23 18:17:45 5303

原创 JavaScript面向对象

方法一:构造函数法function Cat(){ this.name = "";}Cat.prototype.showName = function(){ console.log(this.name);}var cat = new Cat();cat.name = "Tom";cat.showName();// Tom它用构造函数模拟"类",在其内部用thi

2015-04-23 10:26:40 954

原创 二 OpenGL的VS环境配置

网上有不少教程都说要把下载下来的库放到系统中,像我这样有代码洁癖的人,是不容污染系统库的,所有就有了下面这篇博客。一 下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip随便解压到一个目录中,我这里的目录是:D:\libs\glut二 环境配置1 头文件包含项目》配置属性

2015-04-21 10:08:59 1025 1

原创 一 OpenGL数据类型和简单绘制

一 基本数据类型GLenum: 用于GL枚举的无符号整型。GLboolean: 用于单布尔值。OpenGL ES还定义了其自己的“真”和“假”值(GL_TRUE和GL_FALSE)以避免平台和语言的差别。GLbitfield: 用于将多个布尔值(最多32个)打包到单个使用位操作变量的四字节整型。GLbyte: 有符号单字节整型。GLshort: 有符号双字节整型。GLint

2015-04-20 13:08:39 1343

原创 Google protocol buffer使用笔记

一 下载Google下载地址:https://developers.google.com/protocol-buffers/docs/downloads?hl=zh-CNGithub下载地址:https://github.com/google/protobuf我这里下载版本:protobuf-2.6.1.tar.gz二 编译1 解压将上面的压缩包解压到文件夹 pro

2015-04-13 20:11:36 2143 3

原创 pomelo中的基本概念

一 连接流程client到gate服务器获取connector服务器的ip和port;二 通讯类型client和server通讯分三种:1 request - response客户端发送请求, 服务器异步响应。方法:pomelo.request(url, msg, callback);参数:url: 请求地址, 完整地址三个部分: 服务器类型、 服务端相应的

2015-04-13 17:31:52 9775 1

原创 cocos2d-js中使用websocket

下面是一个简单的封装://Network.jsvar WebSocket = WebSocket || window.WebSocket || window.MozWebSocket;var Network = (function(){ var instance = null; function getNetworkInstance (){ var networkInstan

2015-04-08 12:53:46 11489 7

原创 lua正则表达式

lua中的正则表达式,规则如图:常用示例,代码如下:-- 去掉首尾所有空格function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1"))endlocal s = " space "local txt = trim(s)print(string.len(s), string.len(txt))

2015-04-07 16:12:13 3432

原创 cocos2d-js常用方法一览表

精灵var sprite = new cc.Sprite(res.);sprite.setPosition(, );this.addChild(sprite);文本标签var label = new cc.LabelTTF("", "", 30);label.x = ;label.y = ;this.addChild(label);数字标签var atlas

2015-03-31 17:00:10 2771

原创 lua的垃圾回收机制

垃圾回收的目的是要释放掉不再被使用变量所占用的内存。Lua的垃圾收集机制使用了名为标志和清扫(Mark-and-Sweep)的方式。默认情况下,所有变量都标记为“可回收”,回收是从根节点_G出发,可达的对象标记为“不可回收”,然后回收没有被标记为“不可回收”的变量。一 回收机制基础的Mark-and-Sweep算法是最古老的解决循环引用情况垃圾收集算法之一。顾名思义,这

2015-03-31 10:53:55 6808 1

原创 C++11之线程

设计到网络请求的地方一般都需要用到线程,C++11标准中增加了thread,下面是最简单的一个线程使用示例。#include #include void thread_task(){ std::cout << "thread task" << std::endl;}int main(){ std::thread t(thread_task);

2015-03-30 15:32:07 1047

原创 nodejs的express模块安装测试

一 安装expressnpm install express -gdg(global) 全局d(dependencies) 依赖二 安装express-generator工具安装完成之后使用express命令,报错:express command not foundsudo npm install -g express-generator三 新建工程1 新建一个pa

2015-03-25 11:38:16 2514

原创 Android开发基础之Main线程向Worker线程发送消息

一 布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match

2015-03-24 01:32:33 1293

原创 Android开发基础之Worker线程向Main线程发送消息

由于Worker线程不能修改UI,所以当在Worker线程中接收到消息之后,需要通知主线程来更新UI。下面是一个下例子:一 布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

2015-03-24 01:13:22 1659 1

原创 nodejs socket长连接服务端和测试客户端

想用nodejs写个简单的游戏服务器,正在研究中...服务区代码server.jsvar net = require('net');var HOST = '127.0.0.1';var PORT = 8080;var chatServer = net.createServer();var clientList = [];chatServer.on('connecti

2015-03-20 20:43:26 3671

Lua for Windows 5.1.4-45

Lua在Windows下面的继承开发环境

2014-07-03

web开发Demo

CSS+Div JavaScript jQuery jQuery UI jqGrid

2013-08-28

java单例模式

java实现的单例模式,包含懒汉式和饿汉式,适合java入口

2013-06-07

数组的基本操作

java数组的基本操作 查找最大元素 选择排序 优化选择排序 冒泡排序 交换数组元素

2013-06-06

java猜拳游戏

这是一个用Java语言写的猜拳游戏,是一个java的入门程序,适合初学者参考

2013-06-04

动态多态性和静态多态性

C++中的多态性实例,包括静态多态性和动态多态性(运算符的重载和虚函数)

2013-06-02

含类对象子类的构造函数

含有类对象的派生类的构造函数的书写,输出运算符的重载

2013-06-02

C++ 操作符重载

C++操作符的重载 包含了双目运算符 单目运输符 以及前自增 后自增

2013-05-30

观察者模式

用C++写的,完整观察者模式实例,包换类和其使用

2013-05-25

三种工厂模式

包含三个完整的工厂模式类:简单工厂模式,工厂方法模式,抽象工厂模式

2013-05-25

C++单例模式

一个完整的单例的书写例子,用C++编写的,包括单例类及其使用

2013-05-25

socket发送http请求

在linux环境下,使用socket发送和接收http请求的例子

2013-05-25

C++友元成员函数使用实例

C++友元函数的使用,这个友元函数是另一个类的成员函数

2013-05-25

C++类的基本知识实例

C++类的创建和使用的基本知识,各种类型的数据成员

2013-05-25

设计模式之禅

设计模式

2012-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除