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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...