Sunucum, http://dev.apollodata.com/tools/apollo-server/setup.html numaralı telefondan Apollo belgelerine göre ayarlanmış gibi görünüyor.Abonelikler-aktarım-ws ile Apollo Server Kurulumu?
//SET UP APOLLO INCLUDING APOLLO PUBSUB
const executableSchema = makeExecutableSchema({
typeDefs: Schema,
resolvers: Resolvers,
connectors: Connectors,
logger: console,
});
const GRAPHQL_PORT = 8080;
const graphQLServer = express();
// `context` must be an object and can't be undefined when using connectors
graphQLServer.use('/graphql', bodyParser.json(), apolloExpress({
schema: executableSchema,
context: {}, //at least(!) an empty object
}));
graphQLServer.use('/graphiql', graphiqlExpress({
endpointURL: '/graphql',
}));
graphQLServer.listen(GRAPHQL_PORT,() => console.log(
`GraphQL Server is now running on http://localhost:${GRAPHQL_PORT}/graphql`
));
//SET UP APOLLO INCLUDING APOLLO PUBSUB
Bu sunucu başarıyla başlatıldı belirten terminali günlüğüne "GraphQL Sunucu şimdi http://localhost:8080/graphql çalışıyorsa" yazdırır: benim sunucu/main.js dosyasında. ws' olarak
WebSocket bağlantısı:
import { Client } from 'subscriptions-transport-ws'; const wsClient = new Client('ws://localhost:8080');
... Bu konsol mesajı alıyorum:
Ama main_layout bileşeninin üst, ben bu kodu çalıştırdığınızda en
// localhost : 8080/'başarısız oldu: Bir el sıkışma yanıtı almadan önce bağlantı kapatıldı
Neyi eksik?
Eğer GitHunt-API/API/index.js vurgulamak kod, şema başvurusu etmez ve Apollo dokümanlar şema sunucusu kurmak başvurulan alınması gerektiğini ileri sürdüler. Şema, vurgulanan kodun yukarısında, 66 numaralı satırda başvuruyor, ancak bu, çoğunlukla GitHub API'siyle ilgilenen farklı bir bağlantı noktasındaki bir dinleyici içindir. GitHub'a atıfta bulunmak için port 3010 kodunu değiştirmem gerektiğini söylemek doğru olur mu? – VikR
Abonelikler kurmak istiyorsanız (şu anda oldukları gibi), SubscriptionManager yapıcısına (cevabımın son bölümünde işaret ettiğim) ve bu durumda, sırası gelecektir, bir şema nesnesine ihtiyacınız olacaktır. Server sınıfına "subscriptions-transport-ws" paketinden verilebilir. Yukarıdaki referans, yalnızca mutasyonlara ve sorgulara hizmet eden GraphQL POST bitiş noktasıyla ilgilidir. Tüm bu konfigürasyonlardan sonra, farklı portlarda iki sunucuyla, biri GraphQL uç noktasıyla, diğeri de istemciye olayları itmek için websocket için kalacaksınız. – davidyaha
Adanmış bir web bağlantı noktası gerekli değildir - cevabımı görün. – antirealm