我一直在挖掘这个问题的简单解决方案,我找不到一个。在使用Express的应用程序生成器后,如何开始使用Socket.io。例如,如果我创建一个新的应用程序
express myapp
和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;
但是当我去我的应用程序的主页时没有任何反应。我跟着this SO回答,但我的应用程序只触发“用户连接”消息。我的io.emit
永远不会在我的index.js文件中触发。
答案 0 :(得分:1)
将套接字代码写在REST api之外并尝试:
io.on( "connection", function( socket )
{
console.log( "A user connected" );
socket.emit('text', { for: 'everyone' });
});