HTTP client: Support HTTP upgrades (WebSockets)

Open
#376 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
php
Domain
networking

Research direction

Start by reviewing the server-side upgrade support referenced in #190 and the existing client streaming APIs. Determine how HTTP upgrade headers and a DuplexStreamInterface-based client API should fit together. Done means the client can negotiate WebSocket or similar upgrades without being limited to a ReadableStreamInterface.

Written by the indexing model from the issue text.

Description

help wanted HTTP/1.1 new feature

This library should provide support for HTTP upgrades (WebSocket etc.) using the Connection: upgrade and Upgrade: websocket headers.

This is already supported on the server-side (see #190), so adding support for this on the client-side should be reasonable. This will likely require a dedicated API as the existing streaming APIs only expose a ReadableStreamInterface and the upgraded stream would have to be a DuplexStreamInterface.

We welcome contributions, reach out if you want to support this project 👍

Dominant language
PHP
Stars
781
Forks
166
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from reactphp/http

All issues in reactphp/http

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.