36 lines
		
	
	
		
			593 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			593 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package contracts
 | 
						|
 | 
						|
import (
 | 
						|
	"git.fsdpf.net/go/req"
 | 
						|
	"github.com/gorilla/websocket"
 | 
						|
)
 | 
						|
 | 
						|
type WsClientGroup string
 | 
						|
type WsClientID uint
 | 
						|
 | 
						|
// type WsClient struct {
 | 
						|
// 	User
 | 
						|
// 	Group  WsClientGroup
 | 
						|
// 	Socket *websocket.Conn
 | 
						|
// }
 | 
						|
 | 
						|
type WsClient interface {
 | 
						|
	req.User
 | 
						|
	Socket() *websocket.Conn
 | 
						|
	WsClientID() WsClientID
 | 
						|
	WsClientGroup() WsClientGroup
 | 
						|
	WsClientManage() WsClientManage
 | 
						|
	Lock()
 | 
						|
	Unlock()
 | 
						|
}
 | 
						|
 | 
						|
type WsClientManage interface {
 | 
						|
	Register(WsClient) bool
 | 
						|
	Unregister(WsClient)
 | 
						|
	GetClients(func(WsClient) bool) []WsClient
 | 
						|
}
 | 
						|
 | 
						|
type WsChannelManage interface {
 | 
						|
	Channel(string) WsClientManage
 | 
						|
}
 |