Documentation
¶
Index ¶
- Variables
- func Add_friend(client *mongo.Client, adder *UserManager) http.HandlerFunc
- func ConnectMongoDB() (*mongo.Client, error)
- func CreateRoom(client *mongo.Client, rm *RoomManager) http.HandlerFunc
- func EnableCORS(w http.ResponseWriter)
- func GetFriends(client *mongo.Client, userManager *UserManager) http.HandlerFunc
- func GetRooms(client *mongo.Client, userManager *UserManager) http.HandlerFunc
- func JoinUser(client *mongo.Client, rm *RoomManager) http.HandlerFunc
- func LoadRoomsFromDB(mgr *RoomManager)
- func LoadWhileRunning(mgr *RoomManager)
- func RegisterServer(client *mongo.Client) http.HandlerFunc
- func RegisterUser(client *mongo.Client, username string)
- type ChatMessage
- type ChatRoom
- type Client
- type Logger
- type MessageCollection
- type RoomManager
- type UserManager
Constants ¶
This section is empty.
Variables ¶
View Source
var MessageLog = &Logger{}
View Source
var RoomMgr = &RoomManager{ Rooms: make(map[string]*ChatRoom), Client: nil, }
View Source
var UserLog = &Logger{}
Functions ¶
func Add_friend ¶
func Add_friend(client *mongo.Client, adder *UserManager) http.HandlerFunc
func ConnectMongoDB ¶
func CreateRoom ¶
func CreateRoom(client *mongo.Client, rm *RoomManager) http.HandlerFunc
func EnableCORS ¶
func EnableCORS(w http.ResponseWriter)
func GetFriends ¶
func GetFriends(client *mongo.Client, userManager *UserManager) http.HandlerFunc
func GetRooms ¶
func GetRooms(client *mongo.Client, userManager *UserManager) http.HandlerFunc
func JoinUser ¶
func JoinUser(client *mongo.Client, rm *RoomManager) http.HandlerFunc
func LoadRoomsFromDB ¶
func LoadRoomsFromDB(mgr *RoomManager)
func LoadWhileRunning ¶
func LoadWhileRunning(mgr *RoomManager)
func RegisterServer ¶
func RegisterServer(client *mongo.Client) http.HandlerFunc
func RegisterUser ¶
Types ¶
type ChatMessage ¶
type Client ¶
type Client struct {
Username string // identifier
Conn *websocket.Conn
Rooms map[string]*ChatRoom
Friends map[string]*Client
Mu sync.RWMutex
}
func (*Client) BroadcastToRoom ¶
type Logger ¶
func (*Logger) LogMessage ¶
func (ml *Logger) LogMessage(msg ChatMessage) error
type MessageCollection ¶
type MessageCollection struct {
MessageCol *mongo.Collection
Mu sync.Mutex
}
type RoomManager ¶
handles all chat room operations
func (*RoomManager) ConnectToRoom ¶
func (rm *RoomManager) ConnectToRoom(client *Client, room *ChatRoom)
func (*RoomManager) CreateRoom ¶
func (rm *RoomManager) CreateRoom(roomID string)
func (*RoomManager) GetRoom ¶
func (rm *RoomManager) GetRoom(roomID string) *ChatRoom
func (*RoomManager) JoinRoom ¶
func (rm *RoomManager) JoinRoom(c *Client, room *ChatRoom)
func (*RoomManager) RemoveRoom ¶
func (rm *RoomManager) RemoveRoom(roomID string)
type UserManager ¶
func (*UserManager) AddFriend ¶
func (adder *UserManager) AddFriend(c *Client, friend string)
func (*UserManager) GetFriends ¶
func (adder *UserManager) GetFriends(c *Client) []string
func (*UserManager) GetRooms ¶
func (adder *UserManager) GetRooms(c *Client) []string
Click to show internal directories.
Click to hide internal directories.