hyperf / hyperf/socketio-server
事件回调的连接上下文中获取不到原始请求对象
- Langage dominant
- PHP
- Étoiles
- 26
- Forks
- 6
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
代码如下:
```
/**
* @Event("connect")
*/
public function onConnect(Socket $socket)
{
$request = \Hyperf\WebSocketServer\Context::get(
Psr\Http\Message\ServerRequestInterface::class
);
var_dump($request);
return;
}
```
打印结果为null,在`onHandShake`回调的`initRequest`方法中可以正常打印出结果
```
/**
* Initialize PSR-7 Request.
*/
protected function initRequest(SwooleRequest $request): ServerRequestInterface
{
Context::set(ServerRequestInterface::class, $psr7Request = Psr7Request::loadFromSwooleRequest($request));
WsContext::set(ServerRequestInterface::class, $psr7Request);
var_dump(WsContext::get(ServerRequestInterface::class));
return $psr7Request;
}
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Start by comparing the onConnect callback with the onHandShake initRequest method shown in the report, tracing where ServerRequestInterface is stored and retrieved from Context. Verify the callback lifecycle and reproduce the null value; done means the original request is available in the connect context or the issue clearly documents the supported limitation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100