a15ac93

Branches > main > a15ac93 > files / src / net / bowmap

Close client sockets properly

Grahp, 2026-08-20

Commit: a15ac93deedc6d2389b8517b481466ebefa04491
Parent: 8237942

2 changed files:

src/net/bowmap/network/client.clj modified (view file)

@@ -3,7 +3,9 @@    [net.bowmap.network.packets.clientbound :refer [encode-packet!]]    [net.bowmap.network.packets.serverbound :refer [decode-packet!]]    [net.bowmap.network.state :as state]-   [net.bowmap.network.streams :as streams])+   [net.bowmap.network.streams :as streams]+   [net.bowmap.server.entity :as entity]+   [net.bowmap.server.server :as server])   (:import    [java.net Socket])) @@ -21,3 +23,12 @@     #_(println "sending packet out: " packet)     (streams/write-frame!! (encode-packet! packet connection-state) (Socket/.getOutputStream socket))     client))++(defn leave! [client-ref]+  (let [{:keys! [::socket] :keys [::entity/uuid]} @client-ref]+    (try+      (dosync+        (when uuid+          (commute server/players dissoc uuid)))+      (finally+        (Socket/.close socket)))))

src/net/bowmap/network/server.clj modified (view file)

@@ -1,11 +1,11 @@ (ns net.bowmap.network.server   (:require    [clojure.core.async :refer [io-thread]]-   [net.bowmap.network.client :as client]+   [net.bowmap.network.client :as client :refer [leave!]]    [net.bowmap.network.handle :as handle])   (:import    [java.io EOFException]-   [java.net ServerSocket Socket SocketException]))+   [java.net ServerSocket SocketException]))  (defn start-server! [port]   (let [server (ServerSocket. port)]@@ -20,5 +20,5 @@             (catch EOFException _)             (catch SocketException _)             (finally-              (Socket/.close socket)))))+              (leave! client-ref)))))       (recur))))