2

app.get('/' ...さて、 nodejsと socket.io で数時間遊んだ後、さらにいくつかの問題が発生しています。socket.io接続、発火のみ.on('connection', function( ...

var express = require('express')()
express.set('port', process.env.PORT || 8080)

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

server.listen(express.get('port'))

// this event is fired, get('/', ... isnt!
server.on('connection', function(stream) {
    // ??
} )

ユーザーがログインすると、最初にセッションが PHP アプリケーションによって作成されます。セッション データはデータベースに保存され、そのデータにアクセスするために必要なキーは SESSION ID です。それに到達する最も簡単な方法は何ですか? 前述のように、使用されている例をいくつか見つけましたが、app.get('/' ...そのイベントをまったく発生させることができませんでした。

ありがとう。

4

1 に答える 1

1

セッション データが Cookie として保存されている場合 (ほとんどの場合)、ソケット ハンドシェイク中にそのデータを再解析できるはずです。そのためのコードをこの回答に投稿しましたが、ここにもコードをコピーしました:

io.configure(function () {
  io.set('authorization', function (handshakeData, callback) {

    var cookie = handshakeData.headers.cookie;

    // parse the cookie to get user data...

    // second argument to the callback decides whether to authorize the client
    callback(null, true);
  });
});

handshakeData.urlセッション データが URL で伝播されている場合、またはからこの情報を収集できる可能性がありますhandshakeData.query。おそらく、独自の実験を行う必要があります。

于 2013-04-17T17:49:31.097 に答える