首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在node.js中接收socket.io客户端事件?

如何在node.js中接收socket.io客户端事件?
EN

Stack Overflow用户
提问于 2013-03-18 18:29:53
回答 1查看 1.2K关注 0票数 3

在我的应用程序中,即时消息在主应用程序文件中使用socket.io和node.js.Receiving客户端事件是工作的,在其他node.js模块中接收事件不是在me.Can中工作,有人能帮我这个忙吗?

客户端js文件

代码语言:javascript
复制
  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 -服务器端主文件

代码语言:javascript
复制
  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

代码语言:javascript
复制
 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
    }
  });




   });
 });

控制台消息

代码语言:javascript
复制
   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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-08 22:51:40

在主应用程序文件中,您必须包含模块

app.js

代码语言:javascript
复制
  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文件中,它将无法工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15474602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档