Skip to content

Commit

Permalink
message
Browse files Browse the repository at this point in the history
  • Loading branch information
tockn committed May 6, 2020
1 parent 30222db commit dd3a33e
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 52 deletions.
48 changes: 0 additions & 48 deletions handler/handler.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package handler

import (
"encoding/json"
"log"
"net/http"

"github.com/tockn/singo/manager"
Expand All @@ -25,49 +23,3 @@ var upgrader = websocket.Upgrader{
return true
},
}

type ReceiveMessageType string

var (
ReceiveMessageTypeJoinRoom ReceiveMessageType = "join"
ReceiveMessageTypeOffer ReceiveMessageType = "offer"
ReceiveMessageTypeAnswer ReceiveMessageType = "answer"
)

type ReceiveMessage struct {
Type ReceiveMessageType `json:"type"`
Payload json.RawMessage `json:"payload"`
}

type SendMessageType string

var (
SendMessageTypeError SendMessageType = "error"
SendMessageTypeOffer SendMessageType = "offer"
SendMessageTypeAnswer SendMessageType = "answer"
)

type ErrorMessage string

func (e ErrorMessage) Error() string {
return string(e)
}

var (
ErrMsgInvalidType ErrorMessage = "invalid type"
ErrMsgInvalidPayload ErrorMessage = "invalid payload"
ErrMsgInternalError ErrorMessage = "internal error"
)

type SendMessage struct {
Type SendMessageType `json:"type"`
Payload json.RawMessage `json:"payload"`
}

func newErrorMessage(msg error) *SendMessage {
log.Println("error:", msg)
return &SendMessage{
Type: SendMessageTypeError,
Payload: []byte(msg.Error()),
}
}
41 changes: 41 additions & 0 deletions handler/message.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package handler

import (
"encoding/json"
"log"

"github.com/tockn/singo/model"
)

type ReceiveMessageType string

var (
ReceiveMessageTypeJoinRoom ReceiveMessageType = "join"
ReceiveMessageTypeOffer ReceiveMessageType = "offer"
ReceiveMessageTypeAnswer ReceiveMessageType = "answer"
)

type ReceiveMessage struct {
Type ReceiveMessageType `json:"type"`
Payload json.RawMessage `json:"payload"`
}

type ErrorMessage string

func (e ErrorMessage) Error() string {
return string(e)
}

var (
ErrMsgInvalidType ErrorMessage = "invalid type"
ErrMsgInvalidPayload ErrorMessage = "invalid payload"
ErrMsgInternalError ErrorMessage = "internal error"
)

func newErrorMessage(msg error) *model.Message {
log.Println("error:", msg)
return &model.Message{
Type: model.MessageTypeError,
Payload: []byte(msg.Error()),
}
}
8 changes: 4 additions & 4 deletions handler/receive_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func (h *Handler) HandleReceiveMessage(c *model.Client, conn *websocket.Conn) {
continue
}

var resp *SendMessage
var resp *model.Message
switch req.Type {
case ReceiveMessageTypeJoinRoom:
resp = h.handleJoinRoom(c, req.Payload)
Expand Down Expand Up @@ -55,7 +55,7 @@ type MessageJoinRoom struct {
RoomID string `json:"room_id"`
}

func (h *Handler) handleJoinRoom(c *model.Client, msg []byte) *SendMessage {
func (h *Handler) handleJoinRoom(c *model.Client, msg []byte) *model.Message {
var req MessageJoinRoom
if err := json.Unmarshal(msg, &req); err != nil {
return newErrorMessage(ErrMsgInvalidPayload)
Expand All @@ -72,7 +72,7 @@ type MessageSDPOffer struct {
}

// SDP offerが来た時に呼ばれる。Room IDの
func (h *Handler) handleSDPOffer(c *model.Client, msg []byte) *SendMessage {
func (h *Handler) handleSDPOffer(c *model.Client, msg []byte) *model.Message {
var req MessageSDPOffer
if err := json.Unmarshal(msg, &req); err != nil {
return newErrorMessage(ErrMsgInvalidPayload)
Expand All @@ -88,7 +88,7 @@ type MessageSDPAnswer struct {
ClientID string `json:"client_id"`
}

func (h *Handler) handleSDPAnswer(c *model.Client, msg []byte) *SendMessage {
func (h *Handler) handleSDPAnswer(c *model.Client, msg []byte) *model.Message {
var req MessageSDPAnswer
if err := json.Unmarshal(msg, &req); err != nil {
return newErrorMessage(ErrMsgInvalidPayload)
Expand Down
1 change: 1 addition & 0 deletions model/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ var (
MessageTypeICECandidate MessageType = "ice-candidate"
MessageTypeNewClient MessageType = "new-client"
MessageTypeLeaveClient MessageType = "leave-client"
MessageTypeError MessageType = "error"
)

type Message struct {
Expand Down

0 comments on commit dd3a33e

Please sign in to comment.