【问题标题】:Why can't I see in console.log() the server code of socket.io?为什么我在 console.log() 中看不到 socket.io 的服务器代码?
【发布时间】:2012-09-24 14:43:48
【问题描述】:

我开始学习如何使用 socket.io,过去几天我一直在尝试解决这个问题,但我没有得到两件事。

  1. 为什么,在启动服务器并加载我各自的 url (localhost:8088) 后,我的警报需要很长时间才能显示出来?

  2. 为什么看不到socket.io的服务端代码?例如,在下一段代码中,我从未在控制台中看到来自“我的其他事件”的数据。

服务器(app.js):

var app = require('express')()
  , server = require('http').createServer(app)
  , io = require('socket.io').listen(server);

server.listen(8088);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function (socket) { 

  socket.emit('news', { 
    hello: 'world' 
  });

  socket.on('my other event', function (data) {
    console.log(data);
  });

});

客户端(index.html):

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect();

  socket.on('news', function (data) {
    console.log(data);
    alert(data.hello);

    socket.emit('my other event', { 
        my: 'data' 
    });

  });

</script>

【问题讨论】:

  • 您使用的是哪个版本的 express?

标签: javascript node.js socket.io


【解决方案1】:

可能是express 3.0和socket.io不兼容

试试这个:

var express = require('express'),;
var http = require('http');
var app = express();

var server = module.exports = http.createServer(app);
var io = require("socket.io").listen(server);

server.listen(8088);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2011-06-25
    • 2013-11-13
    • 2021-04-09
    • 1970-01-01
    • 2021-05-11
    相关资源
    最近更新 更多