在expresspath中使用socket.io
我想在我的一个路线上实现套接字。 我有一个文件命名
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.
您需要在polling_server.js的顶部定义io,如下所示:
var socket = io();
然后使用这样的sockets:
socket.on("connection",function(socket){