|
|
|
@ -92,24 +92,20 @@ func (c *Client) listenWrite() {
@@ -92,24 +92,20 @@ func (c *Client) listenWrite() {
|
|
|
|
|
select { |
|
|
|
|
// Send a PING keepalive
|
|
|
|
|
case msg := <-c.pingch: |
|
|
|
|
err := websocket.JSON.Send(c.ws, msg) |
|
|
|
|
if err != nil { |
|
|
|
|
if err := websocket.JSON.Send(c.ws, msg); err != nil { |
|
|
|
|
c.handleClientSocketError(err) |
|
|
|
|
} |
|
|
|
|
// send message to the client
|
|
|
|
|
case msg := <-c.ch: |
|
|
|
|
err := websocket.JSON.Send(c.ws, msg) |
|
|
|
|
if err != nil { |
|
|
|
|
if err := websocket.JSON.Send(c.ws, msg); err != nil { |
|
|
|
|
c.handleClientSocketError(err) |
|
|
|
|
} |
|
|
|
|
case msg := <-c.usernameChangeChannel: |
|
|
|
|
err := websocket.JSON.Send(c.ws, msg) |
|
|
|
|
if err != nil { |
|
|
|
|
if err := websocket.JSON.Send(c.ws, msg); err != nil { |
|
|
|
|
c.handleClientSocketError(err) |
|
|
|
|
} |
|
|
|
|
case msg := <-c.userJoinedChannel: |
|
|
|
|
err := websocket.JSON.Send(c.ws, msg) |
|
|
|
|
if err != nil { |
|
|
|
|
if err := websocket.JSON.Send(c.ws, msg); err != nil { |
|
|
|
|
c.handleClientSocketError(err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -148,8 +144,7 @@ func (c *Client) listenRead() {
@@ -148,8 +144,7 @@ func (c *Client) listenRead() {
|
|
|
|
|
// read data from websocket connection
|
|
|
|
|
default: |
|
|
|
|
var data []byte |
|
|
|
|
err := websocket.Message.Receive(c.ws, &data) |
|
|
|
|
if err != nil { |
|
|
|
|
if err := websocket.Message.Receive(c.ws, &data); err != nil { |
|
|
|
|
if err == io.EOF { |
|
|
|
|
c.doneCh <- true |
|
|
|
|
return |
|
|
|
@ -162,10 +157,9 @@ func (c *Client) listenRead() {
@@ -162,10 +157,9 @@ func (c *Client) listenRead() {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var messageTypeCheck map[string]interface{} |
|
|
|
|
err = json.Unmarshal(data, &messageTypeCheck) |
|
|
|
|
|
|
|
|
|
// Bad messages should be thrown away
|
|
|
|
|
if err != nil { |
|
|
|
|
if err := json.Unmarshal(data, &messageTypeCheck); err != nil { |
|
|
|
|
log.Debugln("Badly formatted message received from", c.Username, c.ws.Request().RemoteAddr) |
|
|
|
|
continue |
|
|
|
|
} |
|
|
|
@ -207,8 +201,7 @@ func (c *Client) userJoined(data []byte) {
@@ -207,8 +201,7 @@ func (c *Client) userJoined(data []byte) {
|
|
|
|
|
|
|
|
|
|
func (c *Client) userChangedName(data []byte) { |
|
|
|
|
var msg models.NameChangeEvent |
|
|
|
|
err := json.Unmarshal(data, &msg) |
|
|
|
|
if err != nil { |
|
|
|
|
if err := json.Unmarshal(data, &msg); err != nil { |
|
|
|
|
log.Errorln(err) |
|
|
|
|
} |
|
|
|
|
msg.Type = models.UserNameChanged |
|
|
|
@ -219,8 +212,7 @@ func (c *Client) userChangedName(data []byte) {
@@ -219,8 +212,7 @@ func (c *Client) userChangedName(data []byte) {
|
|
|
|
|
|
|
|
|
|
func (c *Client) chatMessageReceived(data []byte) { |
|
|
|
|
var msg models.ChatEvent |
|
|
|
|
err := json.Unmarshal(data, &msg) |
|
|
|
|
if err != nil { |
|
|
|
|
if err := json.Unmarshal(data, &msg); err != nil { |
|
|
|
|
log.Errorln(err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|