mirror of
https://github.com/jech/galene.git
synced 2024-12-22 23:35:46 +01:00
Rename client to webClient.
This commit is contained in:
parent
50982fddc6
commit
d8b984979b
3 changed files with 55 additions and 55 deletions
2
conn.go
2
conn.go
|
@ -281,7 +281,7 @@ type downConnection interface {
|
|||
|
||||
type rtpDownConnection struct {
|
||||
id string
|
||||
client *client
|
||||
client *webClient
|
||||
pc *webrtc.PeerConnection
|
||||
remote *upConnection
|
||||
tracks []*rtpDownTrack
|
||||
|
|
42
group.go
42
group.go
|
@ -21,22 +21,6 @@ import (
|
|||
"github.com/pion/webrtc/v2"
|
||||
)
|
||||
|
||||
type client struct {
|
||||
group *group
|
||||
id string
|
||||
username string
|
||||
permissions userPermission
|
||||
requested map[string]uint32
|
||||
done chan struct{}
|
||||
writeCh chan interface{}
|
||||
writerDone chan struct{}
|
||||
actionCh chan interface{}
|
||||
|
||||
mu sync.Mutex
|
||||
down map[string]*rtpDownConnection
|
||||
up map[string]*upConnection
|
||||
}
|
||||
|
||||
type chatHistoryEntry struct {
|
||||
id string
|
||||
user string
|
||||
|
@ -57,7 +41,7 @@ type group struct {
|
|||
locked uint32
|
||||
|
||||
mu sync.Mutex
|
||||
clients map[string]*client
|
||||
clients map[string]*webClient
|
||||
history []chatHistoryEntry
|
||||
}
|
||||
|
||||
|
@ -80,7 +64,7 @@ type getUpAction struct {
|
|||
}
|
||||
|
||||
type pushConnsAction struct {
|
||||
c *client
|
||||
c *webClient
|
||||
}
|
||||
|
||||
type connectionFailedAction struct {
|
||||
|
@ -138,7 +122,7 @@ func addGroup(name string, desc *groupDescription) (*group, error) {
|
|||
g = &group{
|
||||
name: name,
|
||||
description: desc,
|
||||
clients: make(map[string]*client),
|
||||
clients: make(map[string]*webClient),
|
||||
}
|
||||
groups.groups[name] = g
|
||||
} else if desc != nil {
|
||||
|
@ -211,7 +195,7 @@ type userid struct {
|
|||
username string
|
||||
}
|
||||
|
||||
func addClient(name string, client *client, user, pass string) (*group, []userid, error) {
|
||||
func addClient(name string, client *webClient, user, pass string) (*group, []userid, error) {
|
||||
g, err := addGroup(name, nil)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
|
@ -247,7 +231,7 @@ func addClient(name string, client *client, user, pass string) (*group, []userid
|
|||
return g, users, nil
|
||||
}
|
||||
|
||||
func delClient(c *client) {
|
||||
func delClient(c *webClient) {
|
||||
c.group.mu.Lock()
|
||||
defer c.group.mu.Unlock()
|
||||
g := c.group
|
||||
|
@ -259,10 +243,10 @@ func delClient(c *client) {
|
|||
delete(g.clients, c.id)
|
||||
}
|
||||
|
||||
func (g *group) getClients(except *client) []*client {
|
||||
func (g *group) getClients(except *webClient) []*webClient {
|
||||
g.mu.Lock()
|
||||
defer g.mu.Unlock()
|
||||
clients := make([]*client, 0, len(g.clients))
|
||||
clients := make([]*webClient, 0, len(g.clients))
|
||||
for _, c := range g.clients {
|
||||
if c != except {
|
||||
clients = append(clients, c)
|
||||
|
@ -271,7 +255,7 @@ func (g *group) getClients(except *client) []*client {
|
|||
return clients
|
||||
}
|
||||
|
||||
func (g *group) getClientUnlocked(id string) *client {
|
||||
func (g *group) getClientUnlocked(id string) *webClient {
|
||||
for _, c := range g.clients {
|
||||
if c.id == id {
|
||||
return c
|
||||
|
@ -280,7 +264,7 @@ func (g *group) getClientUnlocked(id string) *client {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (g *group) Range(f func(c *client) bool) {
|
||||
func (g *group) Range(f func(c *webClient) bool) {
|
||||
g.mu.Lock()
|
||||
defer g.mu.Unlock()
|
||||
for _, c := range g.clients {
|
||||
|
@ -327,7 +311,7 @@ func (err writerDeadError) Error() string {
|
|||
return "client writer died"
|
||||
}
|
||||
|
||||
func (c *client) write(m clientMessage) error {
|
||||
func (c *webClient) write(m clientMessage) error {
|
||||
select {
|
||||
case c.writeCh <- m:
|
||||
return nil
|
||||
|
@ -336,7 +320,7 @@ func (c *client) write(m clientMessage) error {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *client) error(err error) error {
|
||||
func (c *webClient) error(err error) error {
|
||||
switch e := err.(type) {
|
||||
case userError:
|
||||
return c.write(clientMessage{
|
||||
|
@ -354,7 +338,7 @@ func (err clientDeadError) Error() string {
|
|||
return "client dead"
|
||||
}
|
||||
|
||||
func (c *client) action(m interface{}) error {
|
||||
func (c *webClient) action(m interface{}) error {
|
||||
select {
|
||||
case c.actionCh <- m:
|
||||
return nil
|
||||
|
@ -611,7 +595,7 @@ func getGroupStats() []groupStats {
|
|||
return gs
|
||||
}
|
||||
|
||||
func getClientStats(c *client) clientStats {
|
||||
func getClientStats(c *webClient) clientStats {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
|
|
|
@ -91,6 +91,22 @@ func isWSNormalError(err error) bool {
|
|||
websocket.CloseGoingAway)
|
||||
}
|
||||
|
||||
type webClient struct {
|
||||
group *group
|
||||
id string
|
||||
username string
|
||||
permissions userPermission
|
||||
requested map[string]uint32
|
||||
done chan struct{}
|
||||
writeCh chan interface{}
|
||||
writerDone chan struct{}
|
||||
actionCh chan interface{}
|
||||
|
||||
mu sync.Mutex
|
||||
down map[string]*rtpDownConnection
|
||||
up map[string]*upConnection
|
||||
}
|
||||
|
||||
type rateMap map[string]uint32
|
||||
|
||||
func (v *rateMap) UnmarshalJSON(b []byte) error {
|
||||
|
@ -183,7 +199,7 @@ func startClient(conn *websocket.Conn) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
c := &client{
|
||||
c := &webClient{
|
||||
id: m.Id,
|
||||
username: m.Username,
|
||||
actionCh: make(chan interface{}, 10),
|
||||
|
@ -262,7 +278,7 @@ func startClient(conn *websocket.Conn) (err error) {
|
|||
return clientLoop(c, conn)
|
||||
}
|
||||
|
||||
func getUpConn(c *client, id string) *upConnection {
|
||||
func getUpConn(c *webClient, id string) *upConnection {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
|
@ -276,7 +292,7 @@ func getUpConn(c *client, id string) *upConnection {
|
|||
return conn
|
||||
}
|
||||
|
||||
func getUpConns(c *client) []string {
|
||||
func getUpConns(c *webClient) []string {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
up := make([]string, 0, len(c.up))
|
||||
|
@ -286,7 +302,7 @@ func getUpConns(c *client) []string {
|
|||
return up
|
||||
}
|
||||
|
||||
func addUpConn(c *client, id string) (*upConnection, error) {
|
||||
func addUpConn(c *webClient, id string) (*upConnection, error) {
|
||||
pc, err := groups.api.NewPeerConnection(iceConfiguration())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -563,7 +579,7 @@ func rtcpUpListener(conn *upConnection, track *upTrack, r *webrtc.RTPReceiver) {
|
|||
}
|
||||
}
|
||||
|
||||
func sendRR(c *client, conn *upConnection) error {
|
||||
func sendRR(c *webClient, conn *upConnection) error {
|
||||
c.mu.Lock()
|
||||
if len(conn.tracks) == 0 {
|
||||
c.mu.Unlock()
|
||||
|
@ -604,7 +620,7 @@ func sendRR(c *client, conn *upConnection) error {
|
|||
})
|
||||
}
|
||||
|
||||
func rtcpUpSender(c *client, conn *upConnection) {
|
||||
func rtcpUpSender(c *webClient, conn *upConnection) {
|
||||
for {
|
||||
time.Sleep(time.Second)
|
||||
err := sendRR(c, conn)
|
||||
|
@ -617,7 +633,7 @@ func rtcpUpSender(c *client, conn *upConnection) {
|
|||
}
|
||||
}
|
||||
|
||||
func delUpConn(c *client, id string) bool {
|
||||
func delUpConn(c *webClient, id string) bool {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
|
@ -653,7 +669,7 @@ func delUpConn(c *client, id string) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func getDownConn(c *client, id string) *rtpDownConnection {
|
||||
func getDownConn(c *webClient, id string) *rtpDownConnection {
|
||||
if c.down == nil {
|
||||
return nil
|
||||
}
|
||||
|
@ -667,7 +683,7 @@ func getDownConn(c *client, id string) *rtpDownConnection {
|
|||
return conn
|
||||
}
|
||||
|
||||
func getConn(c *client, id string) iceConnection {
|
||||
func getConn(c *webClient, id string) iceConnection {
|
||||
up := getUpConn(c, id)
|
||||
if up != nil {
|
||||
return up
|
||||
|
@ -679,7 +695,7 @@ func getConn(c *client, id string) iceConnection {
|
|||
return nil
|
||||
}
|
||||
|
||||
func addDownConn(c *client, id string, remote *upConnection) (*rtpDownConnection, error) {
|
||||
func addDownConn(c *webClient, id string, remote *upConnection) (*rtpDownConnection, error) {
|
||||
pc, err := groups.api.NewPeerConnection(iceConfiguration())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -716,7 +732,7 @@ func addDownConn(c *client, id string, remote *upConnection) (*rtpDownConnection
|
|||
return conn, nil
|
||||
}
|
||||
|
||||
func delDownConn(c *client, id string) bool {
|
||||
func delDownConn(c *webClient, id string) bool {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
|
@ -740,7 +756,7 @@ func delDownConn(c *client, id string) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func addDownTrack(c *client, conn *rtpDownConnection, remoteTrack *upTrack, remoteConn *upConnection) (*webrtc.RTPSender, error) {
|
||||
func addDownTrack(c *webClient, conn *rtpDownConnection, remoteTrack *upTrack, remoteConn *upConnection) (*webrtc.RTPSender, error) {
|
||||
local, err := conn.pc.NewTrack(
|
||||
remoteTrack.track.PayloadType(),
|
||||
remoteTrack.track.SSRC(),
|
||||
|
@ -1058,7 +1074,7 @@ func sendRecovery(p *rtcp.TransportLayerNack, track *rtpDownTrack) {
|
|||
}
|
||||
}
|
||||
|
||||
func negotiate(c *client, down *rtpDownConnection) error {
|
||||
func negotiate(c *webClient, down *rtpDownConnection) error {
|
||||
offer, err := down.pc.CreateOffer(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -1094,7 +1110,7 @@ func negotiate(c *client, down *rtpDownConnection) error {
|
|||
})
|
||||
}
|
||||
|
||||
func sendICE(c *client, id string, candidate *webrtc.ICECandidate) error {
|
||||
func sendICE(c *webClient, id string, candidate *webrtc.ICECandidate) error {
|
||||
if candidate == nil {
|
||||
return nil
|
||||
}
|
||||
|
@ -1106,7 +1122,7 @@ func sendICE(c *client, id string, candidate *webrtc.ICECandidate) error {
|
|||
})
|
||||
}
|
||||
|
||||
func gotOffer(c *client, id string, offer webrtc.SessionDescription, labels map[string]string) error {
|
||||
func gotOffer(c *webClient, id string, offer webrtc.SessionDescription, labels map[string]string) error {
|
||||
var err error
|
||||
up, ok := c.up[id]
|
||||
if !ok {
|
||||
|
@ -1147,7 +1163,7 @@ func gotOffer(c *client, id string, offer webrtc.SessionDescription, labels map[
|
|||
})
|
||||
}
|
||||
|
||||
func gotAnswer(c *client, id string, answer webrtc.SessionDescription) error {
|
||||
func gotAnswer(c *webClient, id string, answer webrtc.SessionDescription) error {
|
||||
down := getDownConn(c, id)
|
||||
if down == nil {
|
||||
return protocolError("unknown id in answer")
|
||||
|
@ -1168,7 +1184,7 @@ func gotAnswer(c *client, id string, answer webrtc.SessionDescription) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func gotICE(c *client, candidate *webrtc.ICECandidateInit, id string) error {
|
||||
func gotICE(c *webClient, candidate *webrtc.ICECandidateInit, id string) error {
|
||||
conn := getConn(c, id)
|
||||
if conn == nil {
|
||||
return errors.New("unknown id in ICE")
|
||||
|
@ -1176,7 +1192,7 @@ func gotICE(c *client, candidate *webrtc.ICECandidateInit, id string) error {
|
|||
return conn.addICECandidate(candidate)
|
||||
}
|
||||
|
||||
func (c *client) setRequested(requested map[string]uint32) error {
|
||||
func (c *webClient) setRequested(requested map[string]uint32) error {
|
||||
if c.down != nil {
|
||||
for id := range c.down {
|
||||
c.write(clientMessage{
|
||||
|
@ -1199,11 +1215,11 @@ func (c *client) setRequested(requested map[string]uint32) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (c *client) isRequested(label string) bool {
|
||||
func (c *webClient) isRequested(label string) bool {
|
||||
return c.requested[label] != 0
|
||||
}
|
||||
|
||||
func addDownConnTracks(c *client, remote *upConnection, tracks []*upTrack) (*rtpDownConnection, error) {
|
||||
func addDownConnTracks(c *webClient, remote *upConnection, tracks []*upTrack) (*rtpDownConnection, error) {
|
||||
requested := false
|
||||
for _, t := range tracks {
|
||||
if c.isRequested(t.label) {
|
||||
|
@ -1234,14 +1250,14 @@ func addDownConnTracks(c *client, remote *upConnection, tracks []*upTrack) (*rtp
|
|||
return down, nil
|
||||
}
|
||||
|
||||
func pushConn(c *client, conn *upConnection, tracks []*upTrack, label string) {
|
||||
func pushConn(c *webClient, conn *upConnection, tracks []*upTrack, label string) {
|
||||
c.action(addConnAction{conn, tracks})
|
||||
if label != "" {
|
||||
c.action(addLabelAction{conn.id, conn.label})
|
||||
}
|
||||
}
|
||||
|
||||
func clientLoop(c *client, conn *websocket.Conn) error {
|
||||
func clientLoop(c *webClient, conn *websocket.Conn) error {
|
||||
read := make(chan interface{}, 1)
|
||||
go clientReader(conn, read, c.done)
|
||||
|
||||
|
@ -1393,7 +1409,7 @@ func clientLoop(c *client, conn *websocket.Conn) error {
|
|||
}
|
||||
}
|
||||
|
||||
func failConnection(c *client, id string, message string) error {
|
||||
func failConnection(c *webClient, id string, message string) error {
|
||||
if id != "" {
|
||||
err := c.write(clientMessage{
|
||||
Type: "abort",
|
||||
|
@ -1412,7 +1428,7 @@ func failConnection(c *client, id string, message string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func handleClientMessage(c *client, m clientMessage) error {
|
||||
func handleClientMessage(c *webClient, m clientMessage) error {
|
||||
switch m.Type {
|
||||
case "request":
|
||||
err := c.setRequested(m.Request)
|
||||
|
@ -1507,7 +1523,7 @@ func handleClientMessage(c *client, m clientMessage) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func sendRateUpdate(c *client) {
|
||||
func sendRateUpdate(c *webClient) {
|
||||
type remb struct {
|
||||
pc *webrtc.PeerConnection
|
||||
ssrc uint32
|
Loading…
Reference in a new issue