我有两个问题要问你。
首先,我使用 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 吗?
提前致谢
西蒙