Reactjs 在graphql客户端中使用时无法建立WebSocket连接
我正试图通过订阅从graphql服务器获取数据到客户端。为此,我们需要首先建立websocket连接。然而,当我尝试这样做时,我得到了以下错误 错误:Reactjs 在graphql客户端中使用时无法建立WebSocket连接,reactjs,websocket,graphql,apollo-client,graphql-subscriptions,Reactjs,Websocket,Graphql,Apollo Client,Graphql Subscriptions,我正试图通过订阅从graphql服务器获取数据到客户端。为此,我们需要首先建立websocket连接。然而,当我尝试这样做时,我得到了以下错误 错误: WebSocket connection to 'ws://localhost:8888/' failed: Unexpected response code: 400 liveReload — index.js:53 客户端代码: import { WebSocketLink } from "@apollo/client/link/
WebSocket connection to 'ws://localhost:8888/' failed: Unexpected response code: 400
liveReload — index.js:53
客户端代码:
import { WebSocketLink } from "@apollo/client/link/ws";
const wsLink = new WebSocketLink({
uri: "ws://localhost:8888",
options: {
reconnect: false
}
});
我100%确定localhost:8888是graphql服务器的宿主。我在safari和firefox中都尝试过。您必须在graphql服务器声明中明确指定订阅路径,如下所示
const server = new ApolloServer({
typeDefs,
resolvers,
subscriptions: {
**path: "/subscriptions"**
},
context: {
pubsub
}
});
如果您查看响应本身,是否有任何错误描述?例如,在devtools中查看网络检查器时,您可能会看到有关故障的更多信息。您确定此API支持websocket连接吗?