Problem using EventEmitters [Weird behavior]
I'm trying to implement a simple notification in a webapp, I can't make it work with EventEmmiters
Looks like its connected but when I do something like emit an event
It simply doesnt work.
It does nothing, and it's like my emmiter
has 0 clients. (But the subscription is still connected according to the logger)
Solution:Jump to solution
I use redis for my project https://github.com/bebore/ei-noah-bot but that's quite complex, I recommend just following the redis package docs. It's not much different from the event emitter other than that you need to (de)serialize the input and output.
GitHub
GitHub - BeBoRE/ei-noah-bot: De officiële Discord Bot voor de Sweat...
De officiële Discord Bot voor de Sweaty GG Chat. Contribute to BeBoRE/ei-noah-bot development by creating an account on GitHub.
5 Replies
Its kind of funny
It works. but I must declare the terminating link for mutations as the wsLink
Looks like the eventEmmiter that's created in the subscrition lives in the ws server and the emit event
Lives in the nextjs proccess
So the event emmiter has this problem
I probably could fix this by implementing a redis/valkey server but I would really like to keep the app small
Also I dont understand why subscriptions are being run on the ws server, maybe is something of my setup?
I would really like to know
The ws and next server run on different node proces, event emitters only exist for one node proces, therefore an event emitted on one will not be received by the other
You already found the solution, redis is the solution here
Or use the new httpSubscriptionLink
Can you give me an example of implementation of this with Redis? @BeBoRE
thanks in advance
Solution
I use redis for my project https://github.com/bebore/ei-noah-bot but that's quite complex, I recommend just following the redis package docs. It's not much different from the event emitter other than that you need to (de)serialize the input and output.
GitHub
GitHub - BeBoRE/ei-noah-bot: De officiële Discord Bot voor de Sweat...
De officiële Discord Bot voor de Sweaty GG Chat. Contribute to BeBoRE/ei-noah-bot development by creating an account on GitHub.
Thanks, I was wondering if you have an example that uses an async generator
Ended up doing my notification stream like this
It works good, but it feels weird using a while(true)
And I was wondering if there's a cleaner way
also IDK if it's ok to do a new redis connection on every subscription