在 MVC 快递应用程序中使用 soket.io 模块时出错



我想在我的应用程序中使用soket.io,并在 mvc Express 应用程序中使用 module.export

可能服务器代码为:

var express = require('express')
  , app = express()
  , router = express.Router();
var http= require('http').Server(app);
var io=require('socket.io')(http);
app.io = require('socket.io')();
...
//api
app.use(require('./controllers'));
app.listen(config.port, function() {
    console.log('Listening on port ' + config.port)})

和我的控制器/索引:

var express = require('express')
    , router = express.Router();
..
router.get('/', function(req, res) {
    res.send('hi')
});
router.use('/chat', require('./chat'));
module.exports = router
</code>

我的聊天.js文件是:

var app = require('express')
    , chat = app.Router();
var http= require('http').Server(app);
var io = require('socket.io')(http);
var path = require("path");
chat
    .get('/', function(req, res) {
        let reqPath = path.join(__dirname, '../');
       // res;
        io.on('connection', function(socket){
            console.log('a user connected');
        })
        res.sendFile(reqPath +'/views/index.html');    })
io.on('connection', function(socket){
    console.log('a user connected');
});

代码发送我的 html 文件并显示我的结果。但不在我的控制台中显示console.log('a user connected');

<code><!DOCTYPE html>
<html>
<head>
    <title>Hello world</title>
</head>
<script src = "/socket.io/socket.io.js"></script>
<script>
    var socket = io();
    function sendMessage() {
        var msg = document.getElementById('message').value;
        if(msg) {
            socket.emit('msg',msg);
        }
    }
    socket.on('msg', function(data) {
            document.getElementById('message-container').innerHTML += '<div>' + data.ChatMessage + '</div>'
    })
</script>
<body>
<div id = "error-container"></div>
<input type = "text" id = "message">
<button type = "button" name = "button" onclick = "sendMessage()">Send</button>
<div id = "message-container"></div>
</body>
</html></code>

最新更新