要执行graphql查询和突变,无论是在抓取还是在svelte-apollo上,我都成功了(见https://github.com/timhall/svelte-apollo)
我喜欢fech方法的简单性。
Svelte-apollo具有订阅功能,我将尝试使其正常工作。
但是还有其他选择吗?
您如何使用svelte使用graphql订阅?
答案 0 :(得分:0)
使用Apollo在这里提供解决方案:
import { ApolloClient } from 'apollo-client';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { HttpLink } from 'apollo-link-http';
import { WebSocketLink } from 'apollo-link-ws';
import { split } from 'apollo-link';
import { getMainDefinition } from 'apollo-utilities';
const httpLink = new HttpLink({
uri: 'http://localhost:3000/graphql'
});
const wsLink = new WebSocketLink({
uri: `ws://localhost:3000/subscriptions`,
options: {
reconnect: true
}
});
const link = split(
// split based on operation type
({ query }) => {
const definition = getMainDefinition(query);
return (
definition.kind === 'OperationDefinition' &&
definition.operation === 'subscription'
);
},
wsLink,
httpLink,
);
const client = new ApolloClient({
link,
cache: new InMemoryCache()
});
毕竟,您已经设置了客户。接下来,
import gql from 'graphql-tag';
client.subscribe({
query: gql`subscription { whatever }`
}).subscribe(result => console.log(result.data);
答案 1 :(得分:0)
我正在使用 urql's svelte bindings。该文档还展示了如何将绑定与 subscriptions 结合使用。