更新された回答
@dandavisは天才です。WebSocket コンストラクターの最初の (url) 引数のクエリ文字列でユーザー ID を送信するという質問に対する彼のコメントは機能します! そして、 WebSocket プロトコル (RFC 6455)の開始ハンドシェイク (1.3) 中にクライアントによって一度だけ送信されると確信しています。
私が作成したWebSocketサーバーはWebSocket専用であるため、パスで送信することもできました。wsでNode.jsを使用しています。URLに接続しています。 はユーザー ID です。ユーザー ID を取得するには、次のようにします。ws://localhost:5000/4
4
ws.upgradeReq.url
wss.on('connection', function(ws) {
console.log(ws.upgradeReq.url); # => '/4'
});
次に、セキュリティを確保するために、ユーザー ID の代わりにアクセス トークンを渡します。
元の回答
WebSocket コンストラクターの 2 番目の (プロトコル) 引数としてユーザー ID (文字列) を渡すことができます。
それはうまくいくはずですが、あなたが望むものではありません。それは間違いなくハックです。だから、私はそれをお勧めしません。また、サーバーはハンドシェークでユーザー ID をクライアントにエコー バックします。そして、あなたはそれを必要としません。それは、あなたにとって何の役にも立たない余分なデータが送信されることになります。
なぜ WebSocket API でやりたいことができないのか、私にはわかりません。その方が安全かもしれません。