void webSocketHandler(scope WebSocket socket)
{
  import vibe.core.log: logInfo;
  import vibe.data.json: serializeToJsonString;

  logInfo("ws request: %s", socket.request.serializeToJsonString);

  ...

}

ooops!

../../.dub/packages/vibe-d-0.8.1/vibe-d/data/vibe/data/serialization.d(472,53): Error: mutable method vibe.utils.dictionarylist.DictionaryList!(string, false, 8LU, false).DictionaryList.toRepresentation is not callable using a const object
../../.dub/packages/vibe-d-0.8.1/vibe-d/data/vibe/data/serialization.d(356,109): Error: template instance vibe.data.serialization.serializeValueImpl!(JsonStringSerializer!(Appender!string, false), DefaultPolicy).serializeValueDeduced!(const(DictionaryList!(string, false, 8LU, false))) error instantiating
../../.dub/packages/vibe-d-0.8.1/vibe-d/data/vibe/data/serialization.d(521,41):        instantiated from here: serializeValue!(const(DictionaryList!(string, false, 8LU, false)))
../../.dub/packages/vibe-d-0.8.1/vibe-d/data/vibe/data/serialization.d(356,109):        instantiated from here: serializeValueDeduced!(const(TLSCertificateInformation))
../../.dub/packages/vibe-d-0.8.1/vibe-d/data/vibe/data/serialization.d(521,41):        instantiated from here: serializeValue!(const(TLSCertificateInformation))
../../.dub/packages/vibe-d-0.8.1/vibe-d/data/vibe/data/serialization.d(356,109):        ... (5 instantiations, -v to show) ...
../../.dub/packages/vibe-d-0.8.1/vibe-d/data/vibe/data/json.d(1353,17):        instantiated from here: serializeToJson!(Appender!string, const(HTTPServerRequest))
source/vcm/page/webSocketHandler.d(13,43):        instantiated from here: serializeToJsonString!(const(HTTPServerRequest))
...