Skip to content

Commit d398233

Browse files
committed
Show ws events
1 parent ab5404a commit d398233

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/Client/Im/WebSocket/Events.purs

+11-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import Data.Tuple.Nested ((/\))
2323
import Debug (spy)
2424
import Effect (Effect)
2525
import Effect.Class (liftEffect)
26+
import Effect.Console as EC
2627
import Effect.Now as EN
2728
import Effect.Random as ERD
2829
import Effect.Ref (Ref)
@@ -46,7 +47,7 @@ import Shared.Unsafe ((!@))
4647
import Shared.Unsafe as SU
4748
import Web.Event.EventTarget as WET
4849
import Web.Event.Internal.Types (Event)
49-
import Web.Socket.Event.EventTypes (onMessage, onOpen, onClose)
50+
import Web.Socket.Event.EventTypes (onClose, onError, onMessage, onOpen)
5051
import Web.Socket.Event.MessageEvent as WSEM
5152
import Web.Socket.WebSocket (WebSocket)
5253
import Web.Socket.WebSocket as WSW
@@ -78,10 +79,12 @@ setUpWebsocket webSocketStateRef = do
7879
openListener ← WET.eventListener (handleOpen webSocketStateRef)
7980
messageListener ← WET.eventListener (handleMessage webSocketStateRef)
8081
closeListener ← WET.eventListener (handleClose webSocketStateRef)
82+
errorListener ← WET.eventListener (handleError webSocketStateRef)
8183

8284
WET.addEventListener onMessage messageListener false webSocketTarget
8385
WET.addEventListener onOpen openListener false webSocketTarget
8486
WET.addEventListener onClose closeListener false webSocketTarget
87+
WET.addEventListener onError errorListener false webSocketTarget
8588

8689
handleOpen Ref WebSocketState Event Effect Unit
8790
handleOpen webSocketStateRef _ = do
@@ -125,7 +128,8 @@ handleMessage webSocketStateRef event = do
125128

126129
-- | Clear intervals and set up new web socket connection after a random timeout
127130
handleClose Ref WebSocketState Event Effect Unit
128-
handleClose webSocketStateRef _ = do
131+
handleClose webSocketStateRef event = do
132+
let e = spy "ev close" event
129133
state ← ER.read webSocketStateRef
130134
FS.send imId $ ToggleConnected false
131135

@@ -142,6 +146,11 @@ handleClose webSocketStateRef _ = do
142146
setUpWebsocket webSocketStateRef
143147
ER.modify_ (_ { reconnectId = Just id }) webSocketStateRef
144148

149+
handleError Ref WebSocketState Event Effect Unit
150+
handleError webSocketStateRef event = do
151+
let e = spy "ev" event
152+
EC.log "errored"
153+
145154
-- | Send ping with users to learn availability of
146155
sendPing WebSocket Boolean ImModel NoMessages
147156
sendPing webSocket isActive model =

src/Server/WebSocket/Events.purs

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
module Server.WebSocket.Events where
22

33
import Prelude
4-
import Server.Effect (BaseEffect, BaseReader, Configuration)
5-
import Shared.Availability (Availability(..))
6-
import Shared.Im.Types (AfterLogout(..), FullWebSocketPayloadClient(..), MessageError(..), MessageStatus, OutgoingRecord, WebSocketPayloadClient(..), WebSocketPayloadServer(..))
7-
import Shared.User (ProfileVisibility(..))
84

95
import Browser.Cookies.Internal as BCI
106
import Data.Array as DA
@@ -24,6 +20,7 @@ import Data.Newtype as DN
2420
import Data.Time.Duration (Hours)
2521
import Data.Tuple (Tuple(..))
2622
import Data.Tuple as DT
23+
import Debug (spy)
2724
import Droplet.Driver (Pool)
2825
import Effect (Effect)
2926
import Effect.Aff as EA
@@ -44,19 +41,23 @@ import Server.Cookies (cookieName)
4441
import Server.Database.KarmaLeaderboard as SIKL
4542
import Server.Database.Privileges as SIP
4643
import Server.Database.Users as SBU
44+
import Server.Effect (BaseEffect, BaseReader, Configuration)
4745
import Server.Effect as SE
4846
import Server.Im.Action as SIA
4947
import Server.Im.Database as SID
5048
import Server.Settings.Action as SSA
5149
import Server.Token as ST
5250
import Server.WebSocket (CloseCode, CloseReason, WebSocketConnection, WebSocketMessage(..))
5351
import Server.WebSocket as SW
52+
import Shared.Availability (Availability(..))
5453
import Shared.DateTime (DateTimeWrapper(..))
5554
import Shared.DateTime as SDT
55+
import Shared.Im.Types (AfterLogout(..), FullWebSocketPayloadClient(..), MessageError(..), MessageStatus, OutgoingRecord, WebSocketPayloadClient(..), WebSocketPayloadServer(..))
5656
import Shared.Json as SJ
5757
import Shared.Resource (updateHash)
5858
import Shared.ResponseError (DatabaseError, ResponseError(..))
5959
import Shared.Unsafe as SU
60+
import Shared.User (ProfileVisibility(..))
6061
import Simple.JSON (class WriteForeign)
6162
import Simple.JSON as SJS
6263

@@ -99,11 +100,12 @@ inactiveHours = 1
99100

100101
handleConnection Configuration Pool Ref (HashMap Int UserAvailability) WebSocketConnection Request Effect Unit
101102
handleConnection configuration pool allUsersAvailabilityRef connection request = EA.launchAff_ do
103+
liftEffect $ EC.log "sockets"
102104
maybeUserId ← SE.poolEffect pool do
103105
userId ← parseUserId
104106
isIt ← DM.maybe (pure false) SBU.isUserBanned userId
105107
pure $ if isIt then Nothing else userId
106-
liftEffect $ case maybeUserId of
108+
liftEffect $ case (spy "maybe user" maybeUserId) of
107109
Nothingdo
108110
--this can be made more clear for the end user
109111
sendWebSocketMessage connection $ CloseConnection LoginPage

0 commit comments

Comments
 (0)