在快速路由中使用socket.io

时间:2017-09-04 13:06:29

标签: node.js express socket.io routes

我想在我的一条路线上实现套接字。我有一个名为

的文件

index.js

var express=require("express");
var app=express();
var http=require("http").Server(app);
var io=require("socket.io")(http);

// one of my route 'polling'

var polling=require('./polling_server.js');
app.use('/',polling);

// lots of code here

http.listen(3000);

现在我有另一个名为 polling_server.js 的文件,我希望在其中实现套接字。

module.exports=(function(){
var router = require('express').Router();
router.get("/polling",function()
{
 console.log("Hello from polling");
});

 // I want to access io object in this file

io.on("connection",function(socket){

 });
}) ();

在上面的路线 polling_server.js 我想访问io对象。当我运行此代码时它会显示我

io is not defined.

1 个答案:

答案 0 :(得分:1)

您需要在polling_server.js的顶部定义io,如下所示:

var socket = io();

然后像这样使用socket:

socket.on("connection",function(socket){