@@ -3,7 +3,7 @@ package eventsocket
3
3
import (
4
4
"bufio"
5
5
"bytes"
6
- "fmt"
6
+ _ "fmt"
7
7
"net"
8
8
"sync"
9
9
"time"
@@ -43,7 +43,7 @@ type Connection struct {
43
43
}
44
44
45
45
type Server struct {
46
- Settings * ServerSettings
46
+ Settings ServerSettings
47
47
NetListener net.Listener
48
48
EvListener ServerListener
49
49
}
@@ -91,7 +91,7 @@ func (con *Connection) tryConnect(client *Client) bool {
91
91
return true
92
92
}
93
93
94
- func (con * Connection ) setupConnect () {
94
+ func (con * Connection ) setupConnect () bool {
95
95
//authenticate socket
96
96
cBuf := bytes .NewBufferString ("connect" )
97
97
cBuf .Write (doubleLine )
@@ -100,25 +100,25 @@ func (con *Connection) setupConnect() {
100
100
101
101
if err != nil {
102
102
con .eslCon .Close ()
103
- return
103
+ return false
104
104
}
105
105
106
106
channelData := readMessage (con .rw )
107
107
108
108
if channelData .Type != EventReply {
109
109
con .eslCon .Close ()
110
- return
110
+ return false
111
111
}
112
112
113
113
con .ChannelData = channelData .Headers
114
114
con .Connected = true
115
+ return true
115
116
}
116
117
117
118
func (con * Connection ) Loop () {
118
119
//spin this on a separate goroutine so we can start handling api events
119
120
//people will likely subscribe to events here
120
121
go con .Listener .OnConnect (con )
121
- fmt .Println ("Connection Loop" )
122
122
for con .Connected {
123
123
message := readMessage (con .rw )
124
124
@@ -140,12 +140,11 @@ func (con *Connection) Loop() {
140
140
}
141
141
142
142
}
143
- fmt .Println ("Close Connection Loop" )
144
143
}
145
144
146
145
/* Server */
147
146
148
- func CreateServer (settings * ServerSettings ) (* Server , error ) {
147
+ func CreateServer (settings ServerSettings ) (* Server , error ) {
149
148
var err error
150
149
retServer := new (Server )
151
150
retServer .Settings = settings
@@ -155,10 +154,9 @@ func CreateServer(settings *ServerSettings) (*Server, error) {
155
154
if err != nil {
156
155
return nil , err
157
156
}
158
- go retServer .loop ()
159
157
return retServer , nil
160
158
}
161
- func (server * Server ) loop () {
159
+ func (server * Server ) Loop () {
162
160
for {
163
161
conn , err := server .NetListener .Accept ()
164
162
if err != nil {
@@ -172,7 +170,9 @@ func (server *Server) loop() {
172
170
scon .rw = bufio .NewReadWriter (
173
171
bufio .NewReaderSize (scon .eslCon , BufferSize ),
174
172
bufio .NewWriter (scon .eslCon ))
175
- server .EvListener .OnNewConnection (scon )
173
+ if scon .setupConnect () {
174
+ server .EvListener .OnNewConnection (scon )
175
+ }
176
176
}
177
177
}
178
178
@@ -201,17 +201,13 @@ func CreateClient(settings ClientSettings) (*Client, error) {
201
201
func (client * Client ) Loop () {
202
202
for {
203
203
if ! client .Connected {
204
- fmt .Println ("Trying to reconnect" )
205
204
client .Connected = client .connection .tryConnect (client )
206
205
if ! client .Connected {
207
206
time .Sleep (client .Settings .Timeout )
208
207
}
209
- fmt .Println ("Finished trying to reconnect" , client .Connected )
210
208
continue
211
209
}
212
- fmt .Println ("Client Loop" )
213
210
client .connection .Loop ()
214
- fmt .Println ("Client Loop Finished" )
215
211
client .Connected = false
216
212
}
217
213
}
0 commit comments