无限加载nodejs now.js

时间:2013-03-18 11:59:26

标签: apache node.js codeigniter nowjs-sockets

我有两个问题要问你。

首先,我使用Codeigniter作为我的主要框架开发工具,我想知道在其中实现NodeJS是否是一个好主意。我需要创建一个通知中心来向用户发送通知。

其次,我在Codeigniter中实现了NodeJS但问题是,当我在服务器上使用模块“NowJS”时,我的页面正在加载但从未加载。就好像我在做一个不停止的超级循环。

这是我的server.js:

var mysql = require('mysql'),
    //Client = require('mysql').Client,
    connection = mysql.createConnection({
    //Set user, and password for database
        host: 'localhost',
        user: 'root',
        password: 'root',
        database: 'db'
    }),
    exec = require('child_process').exec,
    server = require('http').createServer().listen(8000),
    nowjs = require("now"),
    everyone = nowjs.initialize(server);

connection.connect(function(err) {
  // connected! (unless `err` is set)
  console.log( err );
  console.log('connection to database established');
});

everyone.now.distributeMessage = function(message,session_cookie) {
    //Call the script that decrypts the session id
    //NOTE:the path to index.php must be relative to this script
    exec('php index.php user_session decrypt ' + encodeURIComponent(session_cookie), function (error, stdout, stderr) {
        var parts = stdout.split(';');
        var session_id = parts[1].split(':')[2];
        var ip_address = parts[3].split(':')[2];
        var query = 'select user_data from ci_sessions where session_id=' + session_id +
            ' and ip_address=' + ip_address;
        client.query(query, function (err, results, fields) {
            if (results) {
                //If anything is returned log the userdata and call the clientside function
                console.log(results[0].user_data);
                everyone.now.receiveMessage(message);
            }
        });
    });
};

这是我的client.js

now.ready(function(){
    // "Hello World!" will print on server
    now.logStuff("Hello World!");
  });

这是我的HTML标记

<script src="http://localhost:8000/nodejs/nowjs/now.js"></script>
<script src="/script/client.js"></script>

另外,我可以将socket.io用于此通知系统吗?

提前致谢

西蒙

0 个答案:

没有答案