socket.ioを使用して、アプリケーションの毎日アクティブなユーザーを追跡したいと考えています。私のソケット接続は次のようになります。ノード/エクスプレスルートとSocket.ioとの間の通信方法
let visitorData = {};
io.on('connection', (socket) => {
socket.on('user', (data) => {
visitorData[socket.id] = data;
})
socket.on('disconnect',() => {
delete visitorData[socket.id]
})
})
私は、既存のノード/エクスプレスルートを組み込むことができるようにしたいとのデータが接続をソケットするために、受信しました。特に、/login
エンドポイントへのPOSTを処理して、ログインユーザー名をソケットID接続に関連付ける方法はありますか。例えば
:
app.get('/login', (req, res, next) => {
const someSocket = /* socket */
const someSocketId = /* socket id */;
visitorData[someSocketId] = req.body.username;
someSocket.emit('user', visitorData);
})
Iは、(A)からsocket.idおよび(b)emit
情報をユーザに関連付けるためにノード/エクスプレスルートにsocket.ioを組み込むことができる方法はありますリクエスト/レスポンスボディ?
http://stackoverflow.com/questions/22285299/use-session-data-on-webocket-handshakeの複製のように見えます。 –
うん、同様の考えです。しかし、そのポストはPHPとセッションと関係があります...私はNode/Expressを扱っています。私の質問はセッションとは関係ありません。ルートリクエスト/レスポンスボディをソケットに組み込むだけです。 – Himmel
アクティブユーザーをトラッキングしようとしているのですか、現在のアクティブユーザー数をカウントしていますか? これで何をしたいですか?それは部屋の人の量を追跡するチャットのことですか? 各ユーザーを個別に追跡するよりもはるかに簡単です。多くのサーバー(CPUコア)が必要な場合は、さらに多くの人がいれば必要になります。 –