func socketHandler(emitter *emission.Emitter) http.HandlerFunc {
	return func(response http.ResponseWriter, request *http.Request) {
		socket, err := upgrader.Upgrade(response, request, nil)
		fmt.Println("access")
		if err != nil {
			log.Println(err)
			return
		}

		channel := make(chan string)
		handler := func(message string) {
			channel <- message
		}
		emitter.AddListener("message", handler)
		for message := range channel {
			err := socket.WriteMessage(websocket.TextMessage, []byte(message))
			if err != nil {
				break
			}
		}
		emitter.RemoveListener("message", handler)
		socket.Close()
	}
}