使用Express Application Generator的Socket.io

我一直在挖掘几个小时,以解决这个问题,我找不到一个。 在使用Express的应用程序生成器后,如何开始使用Socket.io。 例如,如果我使用express myappnpm install --save socket.io创build一个新的应用npm install --save socket.io如何在我的index.jade文件中使用?

我的index.jade文件现在是纯HTML,看起来像这样

 html. <head> <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); socket.on('message', function(msg){ console.log('you got a message'); }); </script> </head> <body> <canvas id="mycanvas" width="768" height="720"></canvas> </body> 

我的routes/index.js文件看起来像这样

 var express = require('express'); var router = express.Router(); var io = require('socket.io')(); router.get('/', function(req, res, next) { io.emit('text', { for: 'everyone' }); res.render('index', { title: 'Express' }); }); module.exports = router; 

当我去我的应用程序的主页,但没有反应。 我跟着这个回答,但我的应用程序只会触发“用户连接”消息。 我的io.emit永远不会在我的index.js文件中激发。

在REST API之外写入套接字代码,并试试这个:

 io.on( "connection", function( socket ) { console.log( "A user connected" ); socket.emit('text', { for: 'everyone' }); });