首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用express.io时socket.io会出现错误500?

为什么使用express.io时socket.io会出现错误500?
EN

Stack Overflow用户
提问于 2013-04-29 07:33:57
回答 2查看 2.8K关注 0票数 2

为什么socket.io现在在express.io上显示500 (内部服务器错误)??

客户端:

代码语言:javascript
复制
$(document).ready(function(){
    $.getScript("http://www.mysite.com:8000/socket.io/socket.io.js",function(){
        var socket = io.connect('http://www.mysite.com:8000'); //<<--error
        socket.emit('ready'); 
        });});

服务器端:

代码语言:javascript
复制
var express = require('express.io')
  , engine = express().http().io();

engine.use(express.cookieParser());
engine.use(express.session({secret:'monkey'}));
engine.all('/',function(req,res,next){res.header("Access-Control-Allow-Origin","*");res.header("Access-Control-Allow-Headers","X-Requested-With");next();});
engine.get('/', function(req, res) {
    req.session.loginDate = new Date().toString()
    res.sendfile(__dirname)
    });


engine.listen(8000);


engine.io.route('ready',function(socket){console.log('hellooooooooooo');});

我正在遵循https://github.com/techpines/express.io上的文档,我只更改了两件事:跨域和应用程序被称为引擎。我就是看不出问题所在,还有没有人能让它工作呢?

注意:它使用的不是express.js,而是express.io (与socket.io更兼容)

这就像是,即使engine = express().http().io();io为socket.io,socket.io也没有在服务器上监听

EN

回答 2

Stack Overflow用户

发布于 2013-04-30 19:02:10

我遇到了类似的问题,但我通过在express.io示例代码中复制和粘贴代码示例来修复它,并且它起作用了。然后我对它们进行了比较,以检查问题可能是什么,并观察到代码的顺序很重要。

此顺序会导致错误:

  • static
  • cookieParser
  • session

但是,当我遵循示例代码中提供的代码时,我发现这个顺序是有效的:

  • cookieParser
  • session
  • static

希望这也能对你有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2014-03-04 14:05:52

我相信上面的示例是失败的,因为您使用的是res.sendfile(__dirname)调用,而没有提供文件名。

这是来自express.io的,注意它使用了res.sendfile(__dirname + '/client.html')

代码语言:javascript
复制
express = require('express.io')
app = express().http().io()

// Setup your sessions, just like normal.
app.use(express.cookieParser())
app.use(express.session({secret: 'monkey'}))

// Session is automatically setup on initial request.
app.get('/', function(req, res) {
    req.session.loginDate = new Date().toString()
    res.sendfile(__dirname + '/client.html')
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16269182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档