Index: binary-improvements2/WebServer/src/SSE/AbsEvent.cs
===================================================================
--- binary-improvements2/WebServer/src/SSE/AbsEvent.cs	(revision 399)
+++ binary-improvements2/WebServer/src/SSE/AbsEvent.cs	(revision 402)
@@ -4,5 +4,4 @@
 using System.Net.Sockets;
 using System.Text;
-using AllocsFixes.JSON;
 using Webserver.UrlHandlers;
 using HttpListenerResponse = SpaceWizards.HttpListener.HttpListenerResponse;
@@ -20,6 +19,6 @@
 		private readonly List<HttpListenerResponse> openStreams = new List<HttpListenerResponse> ();
 
-		private readonly BlockingQueue<(string _eventName, object _data)> sendQueue =
-			new BlockingQueue<(string _eventName, object _data)> ();
+		private readonly BlockingQueue<(string _eventName, string _data)> sendQueue =
+			new BlockingQueue<(string _eventName, string _data)> ();
 
 		private int currentlyOpen;
@@ -42,32 +41,20 @@
 		}
 
-		protected void SendData (string _eventName, object _data) {
+		protected void SendData (string _eventName, string _data) {
 			sendQueue.Enqueue ((_eventName, _data));
 			Parent.SignalSendQueue ();
 		}
 
-
 		public void ProcessSendQueue () {
 			while (sendQueue.HasData ()) {
-				(string eventName, object data) = sendQueue.Dequeue ();
+				(string eventName, string data) = sendQueue.Dequeue ();
 				
 				stringBuilder.Append ("event: ");
 				stringBuilder.AppendLine (eventName);
 				stringBuilder.Append ("data: ");
-				
-				switch (data) {
-					case string dataString:
-						stringBuilder.AppendLine (dataString);
-						break;
-					case JsonNode dataJson:
-						dataJson.ToString (stringBuilder);
-						stringBuilder.AppendLine ("");
-						break;
-					default:
-						logError ("Data is neither string nor JSON.", false);
-						continue;
-				}
+				stringBuilder.AppendLine (data);
 				
 				stringBuilder.AppendLine ("");
+
 				string output = stringBuilder.ToString ();
 				stringBuilder.Clear ();
@@ -111,5 +98,5 @@
 						if (e.InnerException is SocketException se) {
 							if (se.SocketErrorCode != SocketError.ConnectionAborted && se.SocketErrorCode != SocketError.Shutdown) {
-								logError ($"SocketError ({se.SocketErrorCode}) while trying to write", true);
+								logError ($"SocketError ({se.SocketErrorCode.ToStringCached ()}) while trying to write", true);
 							}
 						} else {
Index: binary-improvements2/WebServer/src/SSE/EventLog.cs
===================================================================
--- binary-improvements2/WebServer/src/SSE/EventLog.cs	(revision 399)
+++ binary-improvements2/WebServer/src/SSE/EventLog.cs	(revision 402)
@@ -1,6 +1,6 @@
 using System;
-using AllocsFixes.JSON;
 using JetBrains.Annotations;
 using UnityEngine;
+using Utf8Json;
 using Webserver.UrlHandlers;
 
@@ -12,16 +12,34 @@
 		}
 
+		private static readonly byte[] jsonMsgKey = JsonWriter.GetEncodedPropertyNameWithBeginObject ("msg");
+		private static readonly byte[] jsonTypeKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("type");
+		private static readonly byte[] jsonTraceKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("trace");
+		private static readonly byte[] jsonIsotimeKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("isotime");
+		private static readonly byte[] jsonUptimeKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("uptime");
+
 		private void LogCallback (string _formattedMsg, string _plainMsg, string _trace, LogType _type, DateTime _timestamp, long _uptime) {
 			string isotime = _timestamp.ToString ("o");
 			string uptime = _uptime.ToString ();
 
-			JsonObject data = new JsonObject ();
-			data.Add ("msg", new JsonString (_plainMsg));
-			data.Add ("type", new JsonString (_type.ToStringCached ()));
-			data.Add ("trace", new JsonString (_trace));
-			data.Add ("isotime", new JsonString (isotime));
-			data.Add ("uptime", new JsonString (uptime));
-
-			SendData ("logLine", data);
+			JsonWriter writer = new JsonWriter ();
+			
+			writer.WriteRaw (jsonMsgKey);
+			writer.WriteString (_plainMsg);
+			
+			writer.WriteRaw (jsonTypeKey);
+			writer.WriteString (_type.ToStringCached ());
+			
+			writer.WriteRaw (jsonTraceKey);
+			writer.WriteString (_trace);
+			
+			writer.WriteRaw (jsonIsotimeKey);
+			writer.WriteString (isotime);
+			
+			writer.WriteRaw (jsonUptimeKey);
+			writer.WriteString (uptime);
+			
+			writer.WriteEndObject ();
+			
+			SendData ("logLine", writer.ToString ());
 		}
 	}
