Add a websocket signaling server impl

PTAL
(Sorry for the previous abandoned requests. I'm new to the github work flow and messed up the repository)
I Go, I think you can just do this:

{
  cache.lock.Lock()
  defer cache.lock.Unlock()
  // ...
}

Without the func wrapper.