1
0
mirror of https://github.com/actix/actix-website synced 2024-11-27 10:02:57 +01:00
actix-website/docs/conn_lifecycle.md
Hichem Fantar ad4aeac34f
TypeScript compatibility (#379)
* Update file extensions and exports for TypeScript compatibility

* docs: fix typo in getting-started.md

* chore: add no-trailing-punctuation rule to VS Code settings

* feat: add @docusaurus/theme-mermaid for mermaid diagram support

* Update import paths for MermaidDiagram component

* remove redudndant check, use effect only runs after the component is mounted

* Update docusaurus.config.ts to fix syntax error

* bring back check because it's not possible to properly cancel a dynamic import

* feat: optimize dynamic import in CodeBlock component

* chore: update VS Code extensions.json with eslint recommendation

* Update docusaurus.config.ts to add GitHub repository link in header
2024-05-28 19:23:34 +00:00

1.9 KiB

title
Connection Lifecycle

import MermaidDiagram from "@site/src/components/mermaid_diagram"; import connection_overview from '!!raw-loader!@site/static/img/diagrams/connection_overview.mmd'; import connection_accept from '!!raw-loader!@site/static/img/diagrams/connection_accept.mmd'; import connection_worker from '!!raw-loader!@site/static/img/diagrams/connection_worker.mmd'; import connection_request from '!!raw-loader!@site/static/img/diagrams/connection_request.mmd';

Architecture overview

After Server has started listening to all sockets, Accept and Worker are two main loops responsible for processing incoming client connections.

Once connection accepted Application level protocol processing happens in a protocol specific Dispatcher loop spawned from Worker.

Please note, below diagrams are outlining happy-path scenarios only.

Accept loop in more detail

Most of code implementation resides in actix-server crate for struct Accept.

Worker loop in more detail

Most of code implementation resides in actix-server crate for struct Worker.

Request loop roughly

Most of code implementation for request loop resides in actix-web and actix-http crates.