2017-09-04 71 views
1

我想在我的一個路由上實現套接字。我有一個名爲在高速路由中使用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. 

回答

1

你需要在polling_server.js頂部定義IO,像這樣:

var socket = io(); 

然後用插座是這樣的:

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

很抱歉,您建議的代碼在客戶端工作。但我在問服務器端。請你能詳細說明你的答案嗎?我會接受你的回答。 –

+0

對不起,我會再看一次。 – Tim