Skip to content

Commit 0f54c2b

Browse files
authored
Merge pull request #3 from lxzan/dev
Project Refactoring
2 parents fb1b41f + 4a76b46 commit 0f54c2b

File tree

4 files changed

+198
-239
lines changed

4 files changed

+198
-239
lines changed

README.md

+47-15
Original file line numberDiff line numberDiff line change
@@ -16,33 +16,65 @@
1616
go get -v github.com/lxzan/event_emitter@latest
1717
```
1818

19-
### Usage
19+
### Quick Start
2020

2121
```go
2222
package main
2323

2424
import (
25-
"context"
2625
"fmt"
2726
"github.com/lxzan/event_emitter"
28-
"time"
2927
)
3028

3129
func main() {
32-
var em = event_emitter.New(&event_emitter.Config{
33-
BucketNum: 16,
34-
BucketCap: 128,
35-
Concurrency: 8,
30+
var em = event_emitter.New[event_emitter.Int64Subscriber](&event_emitter.Config{
31+
BucketNum: 16,
32+
BucketSize: 128,
3633
})
37-
em.Subscribe(em.NewSubscriber(), "greet", func(msg any) {
38-
fmt.Printf("recv: %v\n", msg)
34+
35+
var suber1 = em.NewSubscriber()
36+
em.Subscribe(suber1, "greet", func(subscriber event_emitter.Int64Subscriber, msg any) {
37+
fmt.Printf("recv: sub_id=%d, msg=%v\n", subscriber.GetSubscriberID(), msg)
38+
})
39+
em.Subscribe(suber1, "greet1", func(subscriber event_emitter.Int64Subscriber, msg any) {
40+
fmt.Printf("recv: sub_id=%d, msg=%v\n", subscriber.GetSubscriberID(), msg)
3941
})
40-
em.Subscribe(em.NewSubscriber(), "greet", func(msg any) {
41-
fmt.Printf("recv: %v\n", msg)
42+
43+
var suber2 = em.NewSubscriber()
44+
em.Subscribe(suber2, "greet1", func(subscriber event_emitter.Int64Subscriber, msg any) {
45+
fmt.Printf("recv: sub_id=%d, msg=%v\n", subscriber.GetSubscriberID(), msg)
4246
})
43-
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
44-
defer cancel()
45-
_ = em.Publish(ctx, "greet", "hello!")
46-
time.Sleep(time.Second)
47+
48+
em.Publish("greet1", "hello!")
49+
}
50+
```
51+
52+
### GWS Broadcast
53+
54+
```go
55+
package main
56+
57+
import (
58+
"github.com/lxzan/event_emitter"
59+
"github.com/lxzan/gws"
60+
)
61+
62+
type Socket struct{ *gws.Conn }
63+
64+
func (c *Socket) GetSubscriberID() int64 {
65+
userId, _ := c.Session().Load("userId")
66+
return userId.(int64)
67+
}
68+
69+
func Sub(em *event_emitter.EventEmitter[*Socket], topic string, socket *Socket) {
70+
em.Subscribe(socket, topic, func(subscriber *Socket, msg any) {
71+
_ = msg.(*gws.Broadcaster).Broadcast(subscriber.Conn)
72+
})
73+
}
74+
75+
func Pub(em *event_emitter.EventEmitter[*Socket], topic string, op gws.Opcode, msg []byte) {
76+
var broadcaster = gws.NewBroadcaster(op, msg)
77+
defer broadcaster.Close()
78+
em.Publish(topic, broadcaster)
4779
}
4880
```

0 commit comments

Comments
 (0)