Satont.
+ban https://www.twitch.tv/satontnewtestprime
+ban
Ладно, мне пока лень регать твич акки, я сижу на коде сфокусирован, потому кому интересно — вот вам ссылка на кик.
https://kick.com/satont
Ладно, мне пока лень регать твич акки, я сижу на коде сфокусирован, потому кому интересно — вот вам ссылка на кик.
https://kick.com/satont
Как же у меня уже ручки потираются на gql начать переписывать по-немногу апи twir.
Как в старые добрые бы стримчанский на 20+ часов, но уже времени не много из-за работы, да и здоровье гробить не хочется.
Я без стрима потестировал subscription's gql, делаются очень просто, работают over websockets, при этом всё на фронте по типам покрыто, хорошо работает в связке с бэком.
Описываем схему:
Генерируется код, который нам нужно имплементировать. Там нужно лишь писать в канал, чтобы отправить сообщение по сокету. Я для примера создал себе общий канал
В итоге на фронте создаём подписку с интересующими нам полями, и всё автоматически работает.
Не кайф ли?
Как в старые добрые бы стримчанский на 20+ часов, но уже времени не много из-за работы, да и здоровье гробить не хочется.
Я без стрима потестировал subscription's gql, делаются очень просто, работают over websockets, при этом всё на фронте по типам покрыто, хорошо работает в связке с бэком.
Описываем схему:
type Subscription {
"""
`newCommand` will return a stream of `Command` objects.
"""
newCommand: Command!
}Генерируется код, который нам нужно имплементировать. Там нужно лишь писать в канал, чтобы отправить сообщение по сокету. Я для примера создал себе общий канал
r.NewCommandChann (не gql), чтобы когда в него пишут — писался ивент gql.func (r *subscriptionResolver) NewCommand(ctx context.Context) (<-chan *gqlmodel.Command, error) {
ch := make(chan *gqlmodel.Command)
fmt.Println("Subscription Started")
go func() {
defer close(ch)
for {
select {
case <-ctx.Done():
fmt.Println("Subscription Closed")
return
case cmd := <-r.NewCommandChann:
fmt.Println("New Command")
ch <- cmd
}
}
}()
return ch, nil
}В итоге на фронте создаём подписку с интересующими нам полями, и всё автоматически работает.
const { data: commandSubscription, executeSubscription } = useSubscription({
query: graphql(`
subscription newC {
newCommand {
id
name
description
aliases
responses {
id
commandId
text
order
}
createdAt
updatedAt
}
}
`),
});Не кайф ли?
👍5🤯1😐1