第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

服務(wù)器發(fā)送事件:識別重新連接客戶端的最佳實踐

服務(wù)器發(fā)送事件:識別重新連接客戶端的最佳實踐

Go
UYOU 2022-05-18 13:51:54
我正在創(chuàng)建一個“數(shù)字排隊票”應(yīng)用程序,人們可以在其中主持隊列,其他人排隊。如果您排隊,您基本上會看到當前正在服務(wù)的 nr、排隊的人數(shù)、ETA 等。它是基于網(wǎng)絡(luò)的,我決定使用 SSE 將更改(例如當前正在服務(wù)的 nr 更改時)推送給每個人那個特定的隊列。我需要一種方法來映射/識別每個客戶端,以便如果他們斷開一段時間然后重新連接,他們?nèi)匀粫3炙麄兊奈恢谩N抑廊绻霈F(xiàn)錯誤,瀏覽器或 SSE 客戶端將自動嘗試重新連接。通常會延遲幾秒鐘,具體取決于瀏覽器。此外,數(shù)據(jù)流從它斷開的點繼續(xù),因此使用 Last-Event-Id 不會丟失任何消息。但是,例如,如果用戶錯誤地退出了 safari,重新打開它并返回到相同的 URL,則會建立一個新的連接,即它不會“重新連接”。我已經(jīng)考慮過使用令牌或 cookie 來實現(xiàn)這一點。但是,SSE 標準不支持發(fā)送標頭(或 POST 數(shù)據(jù))。僅獲取數(shù)據(jù)和 cookie。我可以將令牌作為查詢參數(shù)傳遞。這里有一些我讀過的信息:https://community.apigee.com/questions/28794/best-practices-for-passing-an-access-token-without.htmlhttps://www.rfc-editor.org/rfc/rfc6750#section-2.3人們討論與此相關(guān)的安全問題,但我認為由于人們匿名排隊,并且令牌僅用于識別重新連接的客戶端這一事實,這將不是問題。另外,我負責(zé)后端和前端。使用 cookie 也可能有效,但我對它們的工作原理幾乎一無所知。我假設(shè)我需要一個持久性 cookie 來識別正在“重新連接”的客戶端?如果不是,也許我應(yīng)該使用 WebSockets,或者輪詢?我選擇 SSE 的原因是我只需要單向通信。我對此很陌生,所以任何提示都表示贊賞!幾天來一直在閱讀所有我能得到的東西,但到目前為止還沒有找到一個好的解決方案。也許還有其他方法可以完成我想要的?
查看完整描述

2 回答

?
明月笑刀無情

TA貢獻1828條經(jīng)驗 獲得超4個贊

我肯定會和餅干一起去。我沒有在 Go 中嘗試過,但是這個鏈接顯示了如何設(shè)置和接收 cookie。

缺點是用戶可以通過刪除 cookie 來繞過它(他們可能有這樣做的動機,所以他們可以插隊?),并且(至少在歐盟)必須顯示“我們使用 cookie”通知。您提到了用戶關(guān)閉瀏覽器的情況,因此會話 cookie 是不夠的,您需要使用具有過期時間的 cookie。

第二種選擇是嘗試通過用戶代理、IP 地址和其他一些標頭的組合來嘗試“指紋”用戶。但這是不可靠的,特別是如果用戶共享代理、VPN 等(并且有人仍然可以繞過它,例如切換瀏覽器或使用允許更改用戶代理的插件。)


查看完整回答
反對 回復(fù) 2022-05-18
?
DIEA

TA貢獻1820條經(jīng)驗 獲得超3個贊

在 SSE 消息中設(shè)置 id,瀏覽器將在重新連接時發(fā)送最后一個事件 id 標頭。此外,它的服務(wù)器有責(zé)任跟蹤由于客戶端斷開連接而發(fā)送或丟失的消息。

https://www.html5rocks.com/en/tutorials/eventsource/basics/#toc-lastevent-id


查看完整回答
反對 回復(fù) 2022-05-18
  • 2 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號