mirror of
https://github.com/ergochat/ergo.git
synced 2025-12-20 10:10:08 -08:00
cleanup and reorganization
This commit is contained in:
parent
2dba5f4c47
commit
55f7c89468
8 changed files with 254 additions and 196 deletions
|
|
@ -16,12 +16,19 @@ type Client struct {
|
|||
registered bool
|
||||
invisible bool
|
||||
channels ChannelSet
|
||||
server *Server
|
||||
}
|
||||
|
||||
type ClientSet map[*Client]bool
|
||||
|
||||
func NewClient(conn net.Conn) *Client {
|
||||
client := &Client{conn: conn, recv: StringReadChan(conn), channels: make(ChannelSet), hostname: LookupHostname(conn.RemoteAddr())}
|
||||
func NewClient(server *Server, conn net.Conn) *Client {
|
||||
client := &Client{
|
||||
channels: make(ChannelSet),
|
||||
conn: conn,
|
||||
hostname: LookupHostname(conn.RemoteAddr()),
|
||||
recv: StringReadChan(conn),
|
||||
server: server,
|
||||
}
|
||||
client.SetReplyToStringChan()
|
||||
return client
|
||||
}
|
||||
|
|
@ -38,12 +45,14 @@ func (c *Client) SetReplyToStringChan() {
|
|||
}
|
||||
|
||||
// Adapt `chan string` to a `chan Message`.
|
||||
func (c *Client) Communicate(server *Server) {
|
||||
func (c *Client) Communicate() {
|
||||
for str := range c.recv {
|
||||
m := ParseMessage(str)
|
||||
if m != nil {
|
||||
server.recv <- &ClientMessage{c, m}
|
||||
m, err := ParseMessage(str)
|
||||
if err != nil {
|
||||
// TODO handle error
|
||||
return
|
||||
}
|
||||
c.server.recv <- &ClientMessage{c, m}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue