You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
3.5 KiB
161 lines
3.5 KiB
4 months ago
|
// import { createClient, SubscribePayload } from 'graphql-ws';
|
||
|
const { createClient, SubscribePayload } = require('graphql-ws');
|
||
|
const { WebSocket } = require('ws');
|
||
|
|
||
|
console.log('start');
|
||
|
|
||
|
const headers = {
|
||
|
'x-api-key': 'Yn7}a4fe`j(]k+Zu.Bk|}Hoz7RgAgdv<',
|
||
|
'Content-Type': 'application/json',
|
||
|
origin: 'abcdefg',
|
||
|
};
|
||
|
|
||
|
class MyWebSocket extends WebSocket {
|
||
|
constructor(address, protocols) {
|
||
|
super(address, protocols, {
|
||
|
headers: headers
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
let client;
|
||
|
async function clientFunction() {
|
||
|
client = createClient({
|
||
|
url: 'wss://apibundle.17.dev.ekika.co/user-graphql-apikey',
|
||
|
//url: 'wss://easyapi.ekika.app/user-graphql-apikey',
|
||
|
webSocketImpl: MyWebSocket,
|
||
|
});
|
||
|
|
||
|
const query = client.iterate({
|
||
|
query: `
|
||
|
subscription MySub{
|
||
|
ResPartnerNew{
|
||
|
id
|
||
|
name
|
||
|
write_date
|
||
|
}
|
||
|
}
|
||
|
`,
|
||
|
operationName: 'SubscriptionType',
|
||
|
variables: {},
|
||
|
});
|
||
|
|
||
|
try{
|
||
|
for await (const result of query) {
|
||
|
console.log(result)
|
||
|
}
|
||
|
} catch(err) {
|
||
|
console.log(err)
|
||
|
}
|
||
|
};
|
||
|
function sleep(ms) {
|
||
|
return new Promise(resolve => setTimeout(resolve, ms));
|
||
|
}
|
||
|
|
||
|
clientFunction();
|
||
|
a => setTimeout(a, 5000);
|
||
|
client.terminate();
|
||
|
|
||
|
|
||
|
|
||
|
function comment() {
|
||
|
|
||
|
// import { createClient, SubscribePayload } from 'graphql-ws';
|
||
|
const { createClient, SubscribePayload } = require('graphql-ws');
|
||
|
const { WebSocket } = require('ws');
|
||
|
|
||
|
console.log('start');
|
||
|
|
||
|
const headers = {
|
||
|
'x-api-key': 'Yn7}a4fe`j(]k+Zu.Bk|}Hoz7RgAgdv<',
|
||
|
//'x-api-key': `Af+"E<y.-Rs<q9")|'%7A&@U.fU}JV~:`,
|
||
|
'Content-Type': 'application/json',
|
||
|
origin: 'abcdefg',
|
||
|
// Other headers as needed
|
||
|
};
|
||
|
|
||
|
// const ws = WebSocket('ws://localhost:8016/user-graphql-basic', {
|
||
|
// headers: headers
|
||
|
// })
|
||
|
|
||
|
class MyWebSocket extends WebSocket {
|
||
|
constructor(address, protocols) {
|
||
|
super(address, protocols, {
|
||
|
headers: headers
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// const client = createClient({
|
||
|
// url: 'wss://apibundle.17.dev.ekika.co/user-graphql-apikey',
|
||
|
// //url: 'wss://easyapi.ekika.app/user-graphql-apikey',
|
||
|
// webSocketImpl: MyWebSocket,
|
||
|
// });
|
||
|
let client = null
|
||
|
async function clientFunction() {
|
||
|
if (client){
|
||
|
client.terminate()
|
||
|
}
|
||
|
else {
|
||
|
client = createClient({
|
||
|
url: 'wss://localhost:8016/gqlapi',
|
||
|
//url: 'wss://easyapi.ekika.app/user-graphql-apikey',
|
||
|
webSocketImpl: MyWebSocket,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
const query = client.iterate({
|
||
|
query: `
|
||
|
subscription MySub{
|
||
|
ResPartnerNew{
|
||
|
id
|
||
|
name
|
||
|
write_date
|
||
|
}
|
||
|
}
|
||
|
`,
|
||
|
operationName: 'SubscriptionType',
|
||
|
variables: {},
|
||
|
});
|
||
|
|
||
|
try{
|
||
|
for await (const result of query) {
|
||
|
console.log(result)
|
||
|
// next = result = { data: { greetings: 5x } }
|
||
|
// "break" to dispose
|
||
|
}
|
||
|
} catch(err) {
|
||
|
console.log(err)
|
||
|
}
|
||
|
// try {
|
||
|
// const { value } = await query.next();
|
||
|
// console.log(value)
|
||
|
// // next = value = { data: { hello: 'Hello World!' } }
|
||
|
// // complete
|
||
|
// } catch (err) {
|
||
|
// console.log(err)
|
||
|
// }
|
||
|
};
|
||
|
|
||
|
clientFunction()
|
||
|
setInterval(clientFunction, 6000);
|
||
|
|
||
|
// import { createClient, SubscribePayload } from 'graphql-ws';
|
||
|
|
||
|
// const client = createClient({
|
||
|
// url: 'ws://iterators.ftw:4000/graphql',
|
||
|
// });
|
||
|
|
||
|
// (async () => {
|
||
|
// const subscription = client.iterate({
|
||
|
// query: 'subscription { greetings }',
|
||
|
// });
|
||
|
// // "subscription.return()" to dispose
|
||
|
|
||
|
// for await (const result of subscription) {
|
||
|
// // next = result = { data: { greetings: 5x } }
|
||
|
// // "break" to dispose
|
||
|
// }
|
||
|
// // complete
|
||
|
// })();
|
||
|
}
|