func handleRegister(s api.FluxService) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { inst := getInstanceID(r) // Upgrade to a websocket ws, err := websocket.Upgrade(w, r, nil) if err != nil { w.WriteHeader(http.StatusBadRequest) fmt.Fprintf(w, err.Error()) return } // Set up RPC. The service is a websocket _server_ but an RPC // _client_. rpcClient := rpc.NewClient(ws) // Make platform available to clients // This should block until the daemon disconnects // TODO: Handle the error here s.RegisterDaemon(inst, rpcClient) // Clean up // TODO: Handle the error here rpcClient.Close() }) }