• 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里,这个我就不共享了,反正方式都差不多,要不然就用开源的第三框架!
  • 相关阅读:
    python+requests+excel 接口测试
    Pycharm配置git
    ubuntu16.04+ROS安装kinectV1
    ubuntu16.04安装有道词典
    ROS kinetic语音识别
    在Ubuntu16.04中python环境下实现tab键补全
    ros kinetic安装rbx1
    ubuntu14.04安装opencv3.1
    ubuntu16.04SSH无法连接
    VC6中函数点go to definition报告the symbol XXX is undefined
  • 原文地址:https://www.cnblogs.com/conerlius/p/3196984.html
Copyright © 2020-2023  润新知