socket.ioを接続するときにカスタムリクエストヘッダーを設定する方法jsクライアントを使用する
私もそれが必要です...あなたは何か解決策を見つけましたか?
私もこれに興味があります。
私はJavasocket.io-clientでそれを行う方法を見てきましたが、JSのものではありません
すべてのトランスポート方法で機能するわけではありません。
XHR / Ajaxポーリングを使用している場合、それは可能ですが、HTML5のWebSockets
では不可能です。
http://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-apic
私はの解決策を探しています。
何を達成しようとしていますか? URLパラメータを使用できませんか?
認証ミドルウェアの前後にWebSocketを盗聴できるかどうかを検証するテストを作成しようとしています。
ただし、正常に認証するには、最初のhttpアップグレードリクエストと一緒にCookieセッションを送信する必要があります。 ブラウザで動作します。ノードテストでも動作するようにしたいだけです。
これについて何か進展はありますか? または、socket.io内でcookie-session / sessionIdを取得/設定する方法のヒントはありますか?
私は実際にそれを動かしました。 最初のhttpハンドシェイクの詳細は、 socket.request
入手できます。 そこに、セッションがあります。 たとえば、socket.ioミドルウェアを使用します。
io.use(function(socket, next){
if (!socket.request.session){
console.log('no session in socket')
socket.disconnect();
}
next();
});
バージョン2.0.0
以降、 extraHeaders
オプションを使用してリクエストヘッダーを設定できるようになりました。
const socket = io({
transportOptions: {
polling: {
extraHeaders: {
'x-clientid': 'abc'
}
}
}
});
この例にURLを追加するにはどうすればよいですか
const socket = io({
TransportationOptions:{
ポーリング:{
extraHeaders:{
'x-clientid': 'abc'
}
}
}
});
@ muhammadnasr2番目の引数でオプションを渡します。最初の引数はURLです。
const socket = io("/your-url-here", {
transportOptions: {
polling: {
extraHeaders: {
'x-clientid': 'abc'
}
}
}
});
それは素晴らしいことです。
iOSおよびAndroidSDKのヘッダーを設定するためのサンプルコードはありますか?
どうもありがとう。
Android: https :
ヘッダーを動的に設定できますか?
最も参考になるコメント
@ muhammadnasr2番目の引数でオプションを渡します。最初の引数はURLです。