web server apache tomcat11-31-websocket

来源:https://www.cnblogs.com/houbbBlogs/p/18174226
-Advertisement-
Play Games

前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...


前言

整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。

開源項目

從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。

系列文章

web server apache tomcat11-01-官方文檔入門介紹

web server apache tomcat11-02-setup 啟動

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

web server apache tomcat11-11-Jasper 2 JSP Engine

web server apache tomcat11-12-SSL/TLS Configuration

web server apache tomcat11-13-SSI

web server apache tomcat11-14-CGI

web server apache tomcat11-15-proxy

web server apache tomcat11-16-mbean

web server apache tomcat11-17-default-servlet

web server apache tomcat11-18-clusting 集群

web server apache tomcat11-19-load balance 負載均衡

web server apache tomcat11-20-connectors 連接器

web server apache tomcat11-21-monitor and management 監控與管理

web server apache tomcat11-22-logging 日誌

web server apache tomcat11-23-APR

web server apache tomcat11-24-Virtual Hosting and Tomcat

web server apache tomcat11-25-Advanced IO and Tomcat

web server apache tomcat11-26-maven jars

web server apache tomcat11-27-Security Considerations

web server apache tomcat11-28-Windows Service

web server apache tomcat11-29-Windows Authentication

web server apache tomcat11-30-The Tomcat JDBC Connection Pool

web server apache tomcat11-31-websocket

web server apache tomcat11-32-rewrite

web server apache tomcat11-33-CDI

web server apache tomcat11-34-Ahead of Time compilation support

Tomcat WebSocket 技術文檔

概述

Tomcat 支持 RFC 6455 所定義的 WebSocket。

應用開發

Tomcat 實現了由 Jakarta WebSocket 項目定義的 Jakarta WebSocket 2.1 API。

有幾個示例應用程式演示瞭如何使用 WebSocket API。您需要查看客戶端的 HTML 代碼和伺服器端的代碼。

Tomcat WebSocket 特定配置

Tomcat 提供了一些針對 WebSocket 的特定配置選項。預計這些選項將隨著時間的推移被吸收到 WebSocket 規範中。

  • 在阻塞模式下發送 WebSocket 消息時使用的寫超時預設為 20000 毫秒(20 秒)。可以通過設置附加到 WebSocket 會話的用戶屬性集中的屬性 org.apache.tomcat.websocket.BLOCKING_SEND_TIMEOUT 來更改此值。分配給此屬性的值應該是一個 Long 類型,表示要使用的超時時間(以毫秒為單位)。對於無限超時,請使用 -1。

  • 會話關閉超時預設為 30000 毫秒(30 秒)。可以通過設置附加到 WebSocket 會話的用戶屬性集中的屬性 org.apache.tomcat.websocket.SESSION_CLOSE_TIMEOUT 來更改此值。分配給此屬性的值應該是一個 Long 類型,表示要使用的超時時間(以毫秒為單位)。小於或等於零的值將被忽略。

  • 除了 Jakarta WebSocket API 的 Session.setMaxIdleTimeout(long) 方法外,Tomcat 還提供了更多控制會話因缺乏活動而超時的時間。設置附加到 WebSocket 會話的用戶屬性集中的屬性 org.apache.tomcat.websocket.READ_IDLE_TIMEOUT_MS 將在指定的毫秒數內未收到 WebSocket 消息時觸發會話超時。設置屬性 org.apache.tomcat.websocket.WRITE_IDLE_TIMEOUT_MS 將在指定的毫秒數內未發送 WebSocket 消息時觸發會話超時。這些可以分別或共同使用,可以與或不使用 Session.setMaxIdleTimeout(long)。如果未指定相關屬性,則將應用讀取和/或寫入空閑超時。

  • 如果應用程式未為傳入的二進位消息定義 MessageHandler.Partial,則必須緩衝任何傳入的二進位消息,以便整個消息可以在單個調用註冊的 MessageHandler.Whole 以二進位消息形式傳遞。二進位消息的預設緩衝區大小為 8192 位元組。可以通過將 servlet 上下文初始化參數 org.apache.tomcat.websocket.binaryBufferSize 設置為所需的位元組數來更改此值。

  • 如果應用程式未為傳入的文本消息定義 MessageHandler.Partial,則必須緩衝任何傳入的文本消息,以便整個消息可以在單個調用註冊的 MessageHandler.Whole 以文本消息形式傳遞。文本消息的預設緩衝區大小為 8192 位元組。可以通過將 servlet 上下文初始化參數 org.apache.tomcat.websocket.textBufferSize 設置為所需的位元組數來更改此值。

  • 在使用 WebSocket 客戶端連接到伺服器端點時,建立連接期間的 IO 操作超時由所提供的 jakarta.websocket.ClientEndpointConfig 的 userProperties 控制。屬性為 org.apache.tomcat.websocket.IO_TIMEOUT_MS,以毫秒為單位的字元串形式表示超時時間。預設值為 5000(5 秒)。

  • 在使用 WebSocket 客戶端連接到伺服器端點時,客戶端將遵循的 HTTP 重定向數量由所提供的 jakarta.websocket.ClientEndpointConfig 的 userProperties 控制。屬性為 org.apache.tomcat.websocket.MAX_REDIRECTIONS。預設值為 20。通過將值配置為零,可以禁用重定向支持。

  • 在使用 WebSocket 客戶端連接到需要 BASIC 或 DIGEST 認證的伺服器端點時,必須設置以下用戶屬性:

    • org.apache.tomcat.websocket.WS_AUTHENTICATION_USER_NAME
    • org.apache.tomcat.websocket.WS_AUTHENTICATION_PASSWORD

    可選地,可以僅在伺服器認證挑戰包含特定領域時,通過在可選用戶屬性中定義該領域,配置 WebSocket 客戶端僅發送憑據:

    • org.apache.tomcat.websocket.WS_AUTHENTICATION_REALM
  • 在通過要求 BASIC 或 DIGEST 認證的轉發代理(也稱為網關)連接到伺服器端點時,必須設置以下用戶屬性:

    • org.apache.tomcat.websocket.WS_PROXY_AUTHENTICATION_USER_NAME
    • org.apache.tomcat.websocket.WS_PROXY_AUTHENTICATION_PASSWORD

    可選地,可以僅在伺服器認證挑戰包含特定領域時,通過在可選用戶屬性中定義該領域,配置 WebSocket 客戶端僅發送憑據:

    • org.apache.tomcat.websocket.WS_PROXY_AUTHENTICATION_REALM

參考資料

https://tomcat.apache.org/tomcat-11.0-doc/web-socket-howto.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 作者:avengerEug 鏈接:https://juejin.cn/post/6984574787511123999 前言 經過前面對Spring AOP、事務的總結,我們已經對它們有了一個比較感性的認知了。 今天,我繼續安利一個獨門絕技:Spring 事務的鉤子函數。單純的講技術可能比較枯燥乏味 ...
  • 在Spring中,CompletableFuture通常用於非同步編程,可以方便地處理非同步任務的執行和結果處理,CompletableFuture 是 Java 8 引入的一個類,用於支持非同步編程和併發操作。它基於 Future 和 CompletionStage 介面,提供了豐富的方法來處理非同步任務 ...
  • 正文 今天值班,但是睡到 9:30 才醒。副行長在我睡覺的時候打電話,說他有事待會兒來。我一聽這話,肯定就不會來了,果然不出所料(笑。下午 16:00 早退,反正值班沒人管,17:00 有點困,便睡了一覺。以為最多睡到 18:30,結果睡到了 19:30…… 弄好了靈送的綠植和透明板。研究了一下蘭的 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...