package websocketutil

import (
	"log"
	"net"
)

type WebSocketListener struct {
	connections chan net.Conn
}

func NewWebSocketListener() WebSocketListener {
	return WebSocketListener{
		connections: make(chan net.Conn),
	}
}

func (listener WebSocketListener) Accept() (net.Conn, error) {
	conn := <-listener.connections
	log.Printf("Got client connection: %v\n", conn)
	return conn, nil
}

func (listener *WebSocketListener) NewConnection(conn net.Conn) {
	listener.connections <- conn
}

func (listener WebSocketListener) Close() error {
	return nil
}

func (listener WebSocketListener) Addr() net.Addr {
	return WebSocketAddr("rendez-vous")
}