nodejs游戏服务器开发,一---socket连接

随着nodejs的火热,计算机的发展,使得游戏服务器也开始转向解释语言了,而有些人喜欢用c++/Lua开发服务器,我也曾如此做过。后来,随着网易开源的pomole游戏服务器框架,go语言的出现,nodejs已经开始在游戏服务器端火起来了!少说无聊的。

由于我是在外面已经购买有一台服务器,所以我的环境是直接布署到上面的!具体怎么布置,我就不多说了,我朋友的博客里有,包括pomole的都有。

游戏服务器,都是建立在socket的,要不然就是类似于socket的协议上。而nodejs自身就支持3种连接方式

socket

http

socket.io

而我们游戏要用的就以两种为主。

我就只以tcp socket来说明吧,因为我也不打算做网页游戏,所以就不在那方面多说了!

正式代码:

var net = require('net');

var HOST = 'your ip';

var PORT = your port;

// 创建一个TCP服务器实例,调用listen函数开始监听指定端口

// 传入net.createServer()的回调函数将作为”connection“事件的处理函数

// 在每一个“connection”事件中,该回调函数接收到的socket对象是唯一的

net.createServer(function(sock) {

// 我们获得一个连接 - 该连接自动关联一个socket对象

console.log('CONNECTED: ' +

sock.remoteAddress + ':' + sock.remotePort);

// 为这个socket实例添加一个"data"事件处理函数

sock.on('data', function(data) {

console.log('DATA ' + sock.remoteAddress + ': ' + data);

var Message = require('./Message');

var msg = new Message(data);

msg.parseMessage();

// 回发该数据,客户端将收到来自服务端的数据

sock.write('Server said "' + data + '"');

});

// 为这个socket实例添加一个"close"事件处理函数

sock.on('close', function(data) {

console.log('CLOSED: ' +

sock.remoteAddress + ' ' + sock.remotePort);

});

}).listen(PORT, HOST);

console.log('Server listening on ' + HOST +':'+ PORT);

这个是从我服务器上拿下来的一小块代码,里面实现了socket的连接,至于如何解释,全是message.js里,这个我就不共享了,反正方式都差不多,要不然就用开源的第三框架!