从另一个模块中的服务器实例初始化Socket.IO

时间:2016-08-07 11:18:00

标签: javascript node.js sockets socket.io

我想在路由中初始化我的套接字并根据documents我必须将服务器实例传递给我的套接字。我有一个单独的server.js文件,如下所示:



var app = require('./app');
var http = require('http');

var port = '2002';
app.set('port', port);
var server = http.createServer(app);
server.listen(port, function(err){
	if(err)
		console.log(err);
	else
		console.log('Server listening on port : ' + port);
	});

module.exports = server;




和我的路由器:



var express = require('express');
var server = require('../server');
var router = express.Router();
var io = require('socket.io')(server);
router.get('/', function(req, res, next){
	res.render('index');
});

router.post('/', function(req, res, next){
	io.on('connection', function(socket){
		 socket.emit('server emit', { hello: 'server emit' });
		 socket.on('client emit', function (data) {
		console.log("Server received : " + data);
  });
	});
});

module.exports = router;




和我的客户端脚本:



			var socket = io('http://localhost:2002');
			socket.on('connect', function() {
				socket.on('server emit', function(data) {
					console.log('inside eventtt');
					console.log(data);
					
			});
		});




但是我在浏览器控制台中遇到了这个错误:

socket.io-1.4.5.js:1 GET http://localhost:2002/socket.io/?EIO=3&transport=polling&t=LPajDxI 

我认为问题是由于我的服务器端套接字错误初始化,但我不知道如何处理这个问题。

0 个答案:

没有答案