# Session 23: WebSocket & OCSP

## Summary

WebSocket transport layer (allows browser clients to connect via WebSocket) and OCSP certificate stapling/checking infrastructure.

## Scope

| Go File | Features | Feature IDs | Go LOC |
|---------|----------|-------------|--------|
| server/websocket.go | 38 | 3506–3543 | 1,265 |
| server/ocsp.go | 20 | 2443–2462 | 880 |
| server/ocsp_peer.go | 9 | 2463–2471 | 356 |
| server/ocsp_responsecache.go | 30 | 2472–2501 | 461 |
| **Total** | **97** | | **2,962** |

## .NET Classes

- `WebSocketHandler` — WebSocket upgrade and frame handling
- `WsReadInfo` — WebSocket read state
- `SrvWebsocket` — WebSocket server configuration
- `OcspHandler` — OCSP stapling orchestrator
- `OCSPMonitor` — background OCSP response refresher
- `NoOpCache` — no-op OCSP cache implementation

## Test Files

| Test File | Tests | Test IDs |
|-----------|-------|----------|
| server/websocket_test.go | 109 | 3074–3182 |
| server/certstore_windows_test.go | 4 | 155–158 |
| **Total** | **113** | |

## Dependencies

- Session 01 (Foundation Types)
- Session 08 (Client Connection)
- Session 09 (Server Core Part 1)
- Leaf module: certidp (already complete)
- Leaf module: certstore (already complete)

## .NET Target Location

- `dotnet/src/ZB.MOM.NatsNet.Server/WebSocket/`
- `dotnet/src/ZB.MOM.NatsNet.Server/Auth/Ocsp/`

## Notes

- WebSocket maps to ASP.NET Core WebSocket middleware or `System.Net.WebSockets`
- OCSP integrates with the already-ported certidp and certstore modules
- WebSocket test file has 109 tests — covers masking, framing, compression, upgrade
- OCSP response cache has 30 features — manage certificate stapling lifecycle
