Unable to start subscription server with graphql-ws protocol
### Issue Description

Hi, everyone!

I was following your [guide](https://www.apollographql.com/docs/apollo-server/data/subscriptions) to build server that supports subscriptions. The guide clearly says that server protocol will be `graphql-ws`. But I've found that the server protocol is `graphql-transport-ws` somehow.

I was struggling with this error on iOS side while trying to use subscription:
`WebSocketError(payload: nil, error: Optional(ApolloWebSocket.WebSocket.WSError(type: ApolloWebSocket.WebSocket.WSError.ErrorType.protocolError, message: "Subprotocol not acceptable", code: 4406)), kind: ApolloWebSocket.WebSocketError.ErrorKind.networkError)`

Then I've added logs to the socket-server, and got a log output every second (3 outputs included):
```
httpServer.on("upgrade", (request, socket, head) => {
 log("upgrade", `${process.uptime()}`);
});
wsServer.on("headers", (headers, request) => {
 log("headers", `${process.uptime()} ${request.url} ${headers}`);
});
wsServer.on("connection", (socket) => {
  log("connection", `${process.uptime()} ${socket.protocol}`);
});

/*
Server log outputs:

headers 725.661031564 /graphql-subscriptions HTTP/1.1 101 Switching Protocols,Upgrade: websocket,Connection: Upgrade,Sec-WebSocket-Accept: tcCOpw8jUeBCdBQ75HQ+wMGIaZM=
connection 725.661696195 
upgrade 725.661997484

headers 726.716486181 /graphql-subscriptions HTTP/1.1 101 Switching Protocols,Upgrade: websocket,Connection: Upgrade,Sec-WebSocket-Accept: S+RHY3SevLMmJTL4RqNG+Z9kZDU=
connection 726.716700488 
upgrade 726.716893474

headers 727.787623637 /graphql-subscriptions HTTP/1.1 101 Switching Protocols,Upgrade: websocket,Connection: Upgrade,Sec-WebSocket-Accept: nERyI3oVrUocy4fhOuXRxZXcB8Q=
connection 727.787844604 
upgrade 727.788041241
*/
```

Accidentally I've switched the protocol in iOS to `.graphql_transport_ws` and IT WORKED! Also, there was only the single output from socket logs (which included the protocol name):
```
headers 748.008532921 /graphql-subscriptions HTTP/1.1 101 Switching Protocols,Upgrade: websocket,Connection: Upgrade,Sec-WebSocket-Accept: vUamFHP1yb9kEcnbWzNk9uTAXdQ=,Sec-WebSocket-Protocol: graphql-transport-ws
connection 748.008724487 graphql-transport-ws
upgrade 748.00883525
```

So, the question is: Am I doing something wrong (probably server-side), or is there an issue with the Server code, which somehow uses the old `.graphql_transport_ws` protocol?

Here is the minimal Server code: [Sandbox](https://codesandbox.io/p/devbox/subscription-bug-9xd9fj?workspaceId=4f105c10-6a14-4d98-9550-dcb8f88ec129&layout=%257B%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522rootPanelGroup%2522%253A%257B%2522direction%2522%253A%2522horizontal%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522id%2522%253A%2522ROOT_LAYOUT%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522cm0b6940i00052e6b7gho11vt%2522%252C%2522sizes%2522%253A%255B70%252C30%255D%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522EDITOR%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522id%2522%253A%2522cm0b6940i00022e6box0e56un%2522%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522SHELLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522id%2522%253A%2522cm0b6940i00032e6bheu0ah2u%2522%257D%255D%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522DEVTOOLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522id%2522%253A%2522cm0b6940i00042e6b2cw3cbnf%2522%257D%255D%257D%255D%252C%2522sizes%2522%253A%255B50%252C50%255D%257D%252C%2522tabbedPanels%2522%253A%257B%2522cm0b6940i00022e6box0e56un%2522%253A%257B%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cm0b6940i00012e6be76ho7bp%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252Fsrc%252Findex.ts%2522%252C%2522state%2522%253A%2522IDLE%2522%252C%2522initialSelections%2522%253A%255B%257B%2522startLineNumber%2522%253A1%252C%2522startColumn%2522%253A18%252C%2522endLineNumber%2522%253A1%252C%2522endColumn%2522%253A18%257D%255D%257D%252C%257B%2522id%2522%253A%2522cm0b76b3h00022e6a40bcm5kl%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522initialSelections%2522%253A%255B%257B%2522startLineNumber%2522%253A13%252C%2522startColumn%2522%253A5%252C%2522endLineNumber%2522%253A13%252C%2522endColumn%2522%253A5%257D%255D%252C%2522filepath%2522%253A%2522%252Fpackage.json%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%255D%252C%2522id%2522%253A%2522cm0b6940i00022e6box0e56un%2522%252C%2522activeTabId%2522%253A%2522cm0b6940i00012e6be76ho7bp%2522%257D%252C%2522cm0b6940i00042e6b2cw3cbnf%2522%253A%257B%2522id%2522%253A%2522cm0b6940i00042e6b2cw3cbnf%2522%252C%2522activeTabId%2522%253A%2522cm0ba7h40009d2e6amjhr7h8o%2522%252C%2522tabs%2522%253A%255B%257B%2522type%2522%253A%2522SETUP_TASKS%2522%252C%2522id%2522%253A%2522cm0b6v9u800632e6bbxi007ub%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%252C%257B%2522type%2522%253A%2522TASK_PORT%2522%252C%2522port%2522%253A8081%252C%2522taskId%2522%253A%2522start%2522%252C%2522id%2522%253A%2522cm0ba7h40009d2e6amjhr7h8o%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%252C%2522cm0b6940i00032e6bheu0ah2u%2522%253A%257B%2522id%2522%253A%2522cm0b6940i00032e6bheu0ah2u%2522%252C%2522activeTabId%2522%253A%2522cm0b6vjun006p2e6bsh1tds47%2522%252C%2522tabs%2522%253A%255B%257B%2522type%2522%253A%2522TASK_LOG%2522%252C%2522taskId%2522%253A%2522start%2522%252C%2522id%2522%253A%2522cm0b6vjun006p2e6bsh1tds47%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%257D%252C%2522showDevtools%2522%253Afalse%252C%2522showShells%2522%253Atrue%252C%2522showSidebar%2522%253Atrue%252C%2522sidebarPanelSize%2522%253A15%257D)

I was not assembling an iOS example, as there may have been an obvious error in my server code. But here's how I am assembling the Apollo client:
```
let graphQlEndpoint = URL(string: "https://9xd9fj-4000.csb.app/graphql")!
let graphQlWsEndpoint = URL(string: "wss://9xd9fj-4000.csb.app/graphql-subscriptions")!

let client = URLSessionClient()
let cache = InMemoryNormalizedCache()
let store = ApolloStore(cache: cache)
let provider = DefaultInterceptorProvider(client: client, store: store)
let transport = RequestChainNetworkTransport(interceptorProvider: provider, endpointURL: graphQlEndpoint)
let webSocket = WebSocket(url: graphQlWsEndpoint, protocol: .graphql_ws)

let webSocketTransport = WebSocketTransport(websocket: webSocket)

let splitTransport = SplitNetworkTransport(
    uploadingNetworkTransport: transport,
    webSocketNetworkTransport: webSocketTransport
)

return ApolloClient(networkTransport: splitTransport, store: store)
```

### Link to Reproduction

[Sandbox](https://codesandbox.io/p/devbox/subscription-bug-9xd9fj?workspaceId=4f105c10-6a14-4d98-9550-dcb8f88ec129&layout=%257B%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522rootPanelGroup%2522%253A%257B%2522direction%2522%253A%2522horizontal%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522id%2522%253A%2522ROOT_LAYOUT%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522cm0b6940i00052e6b7gho11vt%2522%252C%2522sizes%2522%253A%255B70%252C30%255D%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522EDITOR%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522id%2522%253A%2522cm0b6940i00022e6box0e56un%2522%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522SHELLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522id%2522%253A%2522cm0b6940i00032e6bheu0ah2u%2522%257D%255D%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522DEVTOOLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522id%2522%253A%2522cm0b6940i00042e6b2cw3cbnf%2522%257D%255D%257D%255D%252C%2522sizes%2522%253A%255B50%252C50%255D%257D%252C%2522tabbedPanels%2522%253A%257B%2522cm0b6940i00022e6box0e56un%2522%253A%257B%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cm0b6940i00012e6be76ho7bp%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252Fsrc%252Findex.ts%2522%252C%2522state%2522%253A%2522IDLE%2522%252C%2522initialSelections%2522%253A%255B%257B%2522startLineNumber%2522%253A1%252C%2522startColumn%2522%253A18%252C%2522endLineNumber%2522%253A1%252C%2522endColumn%2522%253A18%257D%255D%257D%252C%257B%2522id%2522%253A%2522cm0b76b3h00022e6a40bcm5kl%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522initialSelections%2522%253A%255B%257B%2522startLineNumber%2522%253A13%252C%2522startColumn%2522%253A5%252C%2522endLineNumber%2522%253A13%252C%2522endColumn%2522%253A5%257D%255D%252C%2522filepath%2522%253A%2522%252Fpackage.json%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%255D%252C%2522id%2522%253A%2522cm0b6940i00022e6box0e56un%2522%252C%2522activeTabId%2522%253A%2522cm0b6940i00012e6be76ho7bp%2522%257D%252C%2522cm0b6940i00042e6b2cw3cbnf%2522%253A%257B%2522id%2522%253A%2522cm0b6940i00042e6b2cw3cbnf%2522%252C%2522activeTabId%2522%253A%2522cm0ba7h40009d2e6amjhr7h8o%2522%252C%2522tabs%2522%253A%255B%257B%2522type%2522%253A%2522SETUP_TASKS%2522%252C%2522id%2522%253A%2522cm0b6v9u800632e6bbxi007ub%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%252C%257B%2522type%2522%253A%2522TASK_PORT%2522%252C%2522port%2522%253A8081%252C%2522taskId%2522%253A%2522start%2522%252C%2522id%2522%253A%2522cm0ba7h40009d2e6amjhr7h8o%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%252C%2522cm0b6940i00032e6bheu0ah2u%2522%253A%257B%2522id%2522%253A%2522cm0b6940i00032e6bheu0ah2u%2522%252C%2522activeTabId%2522%253A%2522cm0b6vjun006p2e6bsh1tds47%2522%252C%2522tabs%2522%253A%255B%257B%2522type%2522%253A%2522TASK_LOG%2522%252C%2522taskId%2522%253A%2522start%2522%252C%2522id%2522%253A%2522cm0b6vjun006p2e6bsh1tds47%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%257D%252C%2522showDevtools%2522%253Afalse%252C%2522showShells%2522%253Atrue%252C%2522showSidebar%2522%253Atrue%252C%2522sidebarPanelSize%2522%253A15%257D)

### Reproduction Steps

Set up the Apollo server by this [guide](https://www.apollographql.com/docs/apollo-server/data/subscriptions) and try to use a subscription.

Expected result:
Subscription is working with the `graphql-ws` protocol

Actual result:
- Subscription is not working (sub-protocol error: the server expects the `graphql-transport-ws` protocol)
- The client tries to establish the socket connection once a second and fails
