a15ac93
Branches > main > a15ac93 > files / src / net / bowmap
Close client sockets properly
Commit: a15ac93deedc6d2389b8517b481466ebefa04491
Parent: 8237942
2 changed files:
src/net/bowmap/network/client.clj 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 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))))