2

なぜ socket.io は、express.io で 500 (Internal Server Error) を返すようになったのですか??

クライアント側:

$(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'); 
        });});

サーバ側:

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のドキュメントに従っています。変更したのは、クロス ドメインとアプリの 2 つだけです。代わりにエンジンと呼ばれます。問題がわかりません 他の誰かがこれを機能させましたか?

注: Express.js を使用していません。express.io を使用しています (socket.io との互換性が高い)。

engine = express().http().io(); にもかかわらず、socket.io がサーバー上でリッスンしていないようです。ioはsocket.ioです

4

2 に答える 2

0

res.sendfile(__dirname)ファイル名を指定せずに呼び出しを使用しているため、投稿された例は失敗していると思います。

これは、express.io からのものです。以下を使用していることに注意してres.sendfile(__dirname + '/client.html')ください。

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')
})
于 2014-03-04T06:05:52.273 に答える