Я использую подписки graphql для своего проекта, это клон Instagram, и я выполняю функцию, которая нравится или отличается от публикации, я использую npx create-react-app для создания своего клиента, и я использую express для создания своего сервера.
на стороне клиента я настроил свой client следующим образом:
src/apis/client.js
import {
ApolloClient,
ApolloLink,
HttpLink,
InMemoryCache,
split,
} from 'apollo-boost';
import {getMainDefinition} from '@apollo/client/utilities';
import {WebSocketLink} from '@apollo/client/link/ws';
const httpUrl = 'http://localhost:5000/graphql';
const wsUrl = 'ws://localhost:5000/graphql';
const httpLink = ApolloLink.from([
new ApolloLink((operation, forward) => {}),
new HttpLink({uri: httpUrl}),
]);
const wsLink = new WebSocketLink({
uri: wsUrl,
options: {
// connectionParams: () => {},
lazy: true,
reconnect: true,
},
});
function isSubscription(operation) {
const definition = getMainDefinition(operation.query);
return (
definition.kind === 'OperationDefinition' &&
definition.operation === 'subscription'
);
}
const client = new ApolloClient({
cache: new InMemoryCache(),
link: split(isSubscription, wsLink, httpLink),
defaultOptions: {query: {fetchPolicy: 'no-cache'}},
});
export default client;
Как видите, я использую как веб-сокет, так и https-соединение. Раньше я использую только http соединение, и все работает отлично.
Это моя сторона server:
app.js
const {ApolloServer, gql} = require('apollo-server-express');
const http = require('http');
const fs = require('fs');
const bodyParser = require('body-parser');
const cors = require('cors');
const express = require('express');
const app = express();
app.use(cors(), bodyParser.json());
const typeDefs = gql(fs.readFileSync('./schema.graphql', {encoding: 'utf8'}));
const resolvers = require('./resolvers');
const apolloServer = new ApolloServer({
typeDefs,
resolvers,
});
apolloServer.applyMiddleware({app, path: '/graphql'});
const httpServer = http.createServer(app);
apolloServer.installSubscriptionHandlers(httpServer);
const port = 5000;
httpServer.listen(port, () => console.info(`Server started on port ${port}`));
Это ошибка:
Я пытался погуглить, но похоже, что в файле webpack.config React чего-то не хватает, но я не знаю webpack. Пожалуйста, скажите мне, как с этим справиться, большое спасибо и хорошего дня



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У меня возникла такая же проблема после установки последней версии определенного пакета. Удалось решить проблему, удалив node_modules и package-lock.json и снова работающий npm install.