2013-03-18 68 views
3

在我的应用程序im使用socket.io与node.js.Receiving主应用程序文件中的客户端事件工作正常。但接收事件在其他node.js模块不工作me.Can任何人都可以帮助我这一点。如何接收node.js中的socket.io客户端事件?

客户端的js文件

var fullName=$("#fullName").val(); 
    var emailId=$("#emailId").val(); 
    var contactNo=$("#ContactNo").val(); 
    var msg=$("#message").val(); 
    var userInfo={fName:fullName,email:emailId,contactNumber:contactNo,message:msg}; 
    var socket = io.connect('http://localhost:8000'); 
    socket.emit('uploadResume',userInfo); 

app.js - 服务器端主文件

var express = require('express') 
       , http = require('http'); 

    var app = express(); 
    app.configure(function(){ 
    app.use(express.static(__dirname + '/public')); 
    }); 
var server = http.createServer(app); 
var io = require('socket.io').listen(server); 
server.listen(8000); 

exports.io=io; 
console.log('io object is set.'); 
var mongodb = require('mongodb'); 
var server = new mongodb.Server("localhost", 27017, {}); 

new mongodb.Db('test', server, {w: 1}).open(function (error, client) { 


    exports.client = client; 
    console.log('client object is set.'); 

}); 

Notification.js

console.log('Notification module is called'); 

var app=require('../server'); 
console.log('app module is ready to use.'); 
var ioObj=app.io; 
var clientObj=app.client; 

ioObj.sockets.on('connection', function (socket) { 
socket.on('uploadResume', function (userInfo) { 
console.log('data is '+userInfo); 
var collection = new mongodb.Collection(clientObj, 'test_collection'); 
    collection.insert(userInfo,{safe:true},function(err, objects) { 
    if(!err){ 

    console.log('Data inserted successfully.'); 
    } 
    if (err && err.message.indexOf('E11000 ') !== -1) { 
     // this _id was already inserted in the database 
    } 
    }); 




    }); 
}); 

控制台味精

info - socket.io started 
    io object is set. 
    client object is set. 
    debug - served static content /socket.io.js 
    debug - client authorized 
    info - handshake authorized g2Sx9h5FL9Gxzs3KiAcj 
    debug - setting request GET /socket.io/1/websocket/g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - client authorized for 
    debug - websocket writing 1:: 
    debug - emitting heartbeat for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - emitting heartbeat for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - emitting heartbeat for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - emitting heartbeat for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - emitting heartbeat for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - emitting heartbeat for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - emitting heartbeat for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client g2Sx9h5FL9Gxzs3KiAcj 
    debug - set heartbeat interval for client g2Sx9h5FL9Gxzs3KiAcj 
+0

您可以指定运行服务器时正在打印的控制台消息吗? – shelman 2013-03-25 20:20:30

+0

代码似乎是正确的..请给出更多的细节,你错误或输出你得到.... – 2013-04-06 09:38:37

+0

@AmolMKulkarni请检查我已更新控制台消息在我的代码 – sachin 2013-04-06 13:31:48

回答

0

你的主应用程序文件,你必须包含模块

app.js

var notification=require('./Notifications.js'); // module included 
    var express = require('express'), 
    http = require('http'); 

    var app = express(); 
    app.configure(function(){ 
    app.use(express.static(__dirname + '/public')); 
    }); 
var server = http.createServer(app); 
var io = require('socket.io').listen(server); 
server.listen(8000); 

exports.io=io; 
console.log('io object is set.'); 
var mongodb = require('mongodb'); 
var server = new mongodb.Server("localhost", 27017, {}); 

new mongodb.Db('test', server, {w: 1}).open(function (error, client) { 


    exports.client = client; 
    console.log('client object is set.'); 

}); 

所以,如果你不包括到主app.js文件,它的模块文件不会工作

相关问题