0:00:27
what is going on guys welcome back to
0:00:29
another session of buildbreaking fix
0:00:34
not one raw coder but two of the
0:00:41
that's our second recorder right there
0:00:46
i'm sorry about being a little late
0:00:49
that's all right maybe do all that
0:00:53
to do but yeah welcome back then good to
0:01:05
and i'm pretty sure he's gonna have a go
0:01:09
you just watch me get roast the entire
0:01:15
um yeah but first thing uh is first
0:01:19
let's acknowledge the country and pay
0:01:20
our respects to the elders so here we go
0:01:27
i begin today by acknowledging the
0:01:29
traditional custodians of the land on
0:01:31
which we gather today and pay my
0:01:33
respects to the elders past present and
0:01:36
future i extend their respect to
0:01:39
aboriginal and torres strait islander
0:01:46
how about for a change we have a bit of
0:01:52
actually that doesn't look good
0:01:54
that doesn't look good right
0:01:59
it's going on yeah it's too much of the
0:02:06
yeah we tried anyway which is good
0:02:13
today what we're basically gonna do is
0:02:19
we are not gonna write it
0:02:31
even though is fun but it's slowing us
0:02:36
some bad actors out there in the world
0:02:41
yeah very very bad actors
0:02:46
but yeah um so we're now gonna put the
0:02:49
um scrambly enhanced version on
0:02:55
s3 we'll just do that
0:03:00
just relocate this time and um until we
0:03:05
uh everything's sorted
0:03:10
implemented implement the changes that
0:03:14
mentioned in the whatsapp group
0:03:17
i think those will be really helpful um
0:03:21
have as in to avoiding gag devs attacks
0:03:31
yeah that would be pretty much fun it's
0:03:33
a good learning opportunity though oh
0:03:37
in that sense yeah i can't wait to get
0:03:40
full jackdef to show us um more of his
0:03:46
yeah if you can't do it locally here's a
0:03:48
challenge for you guys if if you can't
0:03:58
you'll get a kebab
0:04:00
wow that would that would be
0:04:03
that would be quite the uh attack though
0:04:10
he would have to gain access to your to
0:04:12
your your computer
0:04:15
or at least your network
0:04:17
which is why i offered him a kebab if
0:04:21
which i know it's not gonna happen
0:04:25
well yeah i mean it's uh i watched the
0:04:28
show a bit of it last night i watched
0:04:30
the replay on youtube
0:04:35
it wasn't revealed to me what was going
0:04:37
on but i took a guess that it's
0:04:44
there's still scripts being injected
0:04:48
into that into the
0:04:51
the notes that we're saving to dynamodb
0:04:56
the websocket most likely as well
0:05:02
there's no sanitizing going on and in
0:05:07
which is which is probably one surface
0:05:10
and then the other surfaces i'm not
0:05:13
entirely sure about there might be some
0:05:23
some attack surfaces in the jquery or
0:05:28
the code we wrote too
0:05:32
so yeah that's what i
0:05:34
mentioned in the whatsapp
0:05:36
yeah yeah and um basically even though i
0:05:40
didn't get a chance to read all the
0:05:42
messages but i checked their
0:05:46
like as you get the notifications on
0:05:50
the screen right when the
0:05:54
i didn't get a chance to i think just do
0:05:57
that because it's been a full-on day man
0:06:02
yeah i've just come back
0:06:04
from somewhere there about to be really
0:06:09
lee and and it took a few hours but i
0:06:12
tried my best to get in time for
0:06:16
which eventually happened
0:06:18
great but yeah um let's um implement
0:06:24
being on localhost um and the websocket
0:06:29
heartbeat so about the websocket
0:06:44
yes today that is probably a good idea
0:06:47
to and it was basically convar 64's idea
0:06:52
that it was it's probably a good idea to
0:06:56
check for the heartbeat every 30 seconds
0:07:02
initially i didn't know why he was
0:07:05
saying this so it didn't really
0:07:10
to me but he did outline that if
0:07:13
for example for any reason you can't
0:07:18
for any reason at all
0:07:21
as in the worst case scenario so it's
0:07:23
always good to check every
0:07:25
30 seconds for the connection
0:07:28
or for the websocket so
0:07:35
check some code but i i we basically ran
0:07:39
out of time how to implement it
0:07:42
implement it properly
0:07:46
we can basically i'll share my screen
0:07:49
now that i can which is great
0:07:58
do you want to choose a letter
0:08:02
let's go three two
0:08:07
go go go yeah we just get three seconds
0:08:16
that's a pretty good choice actually
0:08:22
so i'll just share my screen and bring
0:08:28
thing okay so we were basically
0:08:31
implementing that in the back end first
0:08:36
this is how so the code we got from was
0:08:42
yeah so this is the code that we got
0:08:46
which would you would you mind sharing
0:08:54
let's do that i think that's a lot more
0:08:59
it's just easier for me to follow and
0:09:01
that way i can keep an eye on the chat
0:09:15
and how do i send you that
0:09:42
so we didn't make this um
0:09:54
and hang on and i'll probably have to
0:09:59
and do something first
0:10:15
recently closed no history
0:10:19
where did i got that solution from i'm
0:10:21
just gonna check that heartbeat google
0:10:28
unauthorized scrambler
0:10:39
with a stack overflow
0:10:46
i think you must be
0:11:03
there's a stack overflow one i don't
0:11:15
where was the slap stack overflow onto
0:11:18
uh implements a heartbeat yeah that's
0:11:20
the one okay cool so i'm now gonna share
0:11:39
so he's sending a ping from a client's
0:11:49
oh so you literally just send
0:11:52
you just send a message
0:11:55
yeah ping and then the server sends a
0:11:58
pong but in our case we won the opposite
0:12:04
i didn't i okay that's cool i thought it
0:12:12
through websocket but i guess not i
0:12:14
guess you just send a ping
0:12:18
that's what basically i can tell because
0:12:20
i don't know how and it does
0:12:23
work because he says that
0:12:35
um i was just i was reading the code
0:12:38
it's okay go ahead sorry i didn't mean
0:12:42
no no that's all right so he does say
0:12:57
after the connection was open so it does
0:13:00
but it only happened what happens once
0:13:03
so after that it doesn't send
0:13:06
any more and that's basically because
0:13:10
this hasn't been implemented recursively
0:13:19
maybe he didn't mean set timeout he
0:13:22
meant set interval
0:13:31
because we're going to be sending the
0:13:33
ping from the server side
0:13:42
or the client side
0:13:49
um are you building client side
0:13:52
i suppose you could do it either way
0:13:58
that's weird i remember the ada i
0:14:00
remember we were going over the
0:14:01
documentation the other day
0:14:03
on aws it said you couldn't send
0:14:07
a you couldn't initialize a ping from
0:14:16
right right right right okay okay yeah
0:14:19
in that case this would make sense
0:14:27
i was just gonna say so
0:14:29
then i guess it's pretty simple all we
0:14:34
is on open we just start sending a ping
0:14:39
in an interval of every
0:14:42
29 20 seconds or 29 seconds or whatever
0:14:50
on message lambda or whatever it's
0:14:52
called if we get a paying as a message
0:14:55
we just send back a pong is that it
0:15:00
sounds like it pretty much okay
0:15:02
sounds sounds simple
0:15:06
let's do this then so
0:15:08
um on the client side what i'm gonna do
0:15:13
i'm gonna open this this is not my
0:15:15
client side this is my oh have you got
0:15:19
yes you have actually
0:15:23
um it's crumb enhancement
0:15:45
so this is still friendly yet that's
0:15:49
this one would come here
0:15:57
i can never mind we can do it over here
0:16:00
home.html home.html
0:16:04
i believe there is a part in the code
0:16:07
there is the websocket on open
0:16:17
so on here we can basically do
0:16:28
i took your advice
0:16:31
let's locate that one and
0:16:38
i think i have a function
0:16:41
written somewhere where you send the
0:16:53
oh there you go dispatch
0:16:58
well it's fine you can just you can just
0:17:02
you don't need to do that nevermind
0:17:04
whatever it doesn't matter
0:17:08
forget what i said
0:17:11
well i mean that if the wheel is there
0:17:14
why would we re reinvent the wheel well
0:17:18
because all you have to write is
0:17:20
websocket send and then i i realized
0:17:25
the other function i wrote that was to
0:17:39
um messages we're sending not just the
0:17:45
other events on the page that were
0:17:51
uh like sending a like creating a new
0:17:53
card and then we send that through the
0:17:55
websocket or changing the position or
0:17:57
the color or something
0:17:59
i see i see this is literally just
0:18:15
every three seconds
0:18:19
go to the url which is good
0:18:23
websocket on open yeah
0:18:27
uh that ws though you want to change
0:18:44
did this say that in the u.s because uh
0:18:48
i had a friend of mine she used to say
0:18:51
this a lot and she was from us
0:18:54
what would you say easy peasy easy peasy
0:19:02
i don't know about that
0:19:04
i never heard that
0:19:06
what is the apple pies
0:19:17
oh okay that must have been
0:19:21
he invented it then apple
0:19:27
all right so this is that region
0:19:34
apple pie and custard don't forget the
0:19:41
i think that might be here
0:19:50
don't forget the mustang yeah that might
0:19:52
be it iron custard don't forget the
0:19:54
mustard okay i learned something today
0:20:01
something about my own culture
0:20:10
we have got this interval
0:20:18
with intel will appear in um
0:20:30
we should get a ping now to the lambda
0:20:33
yeah which we are not going to test it
0:20:36
i'll test it when gekko is working
0:20:46
will feel that now this is not fair is
0:20:54
are you there tori oh sorry what would
0:20:58
no i was just talking to myself
0:21:02
okay um this is there and now we're
0:21:11
and do a pong here
0:21:17
so if the development is that one
0:21:33
i think it's default i think it's just
0:21:51
because i'm thinking they might be
0:21:56
no that doesn't make sense if it was on
0:21:58
connect because it's already connected
0:22:04
uh yeah it's this it's this one yeah
0:22:09
it's a default is it yeah yeah okay
0:22:14
so this is the one we need to sanitize
0:22:30
which honestly i've never done because
0:22:32
i've i've never had to deal with that
0:22:35
i've never used a library
0:22:38
yeah that's all right
0:22:47
api gateway's there which is fine
0:22:52
so basically what we can do is
0:22:58
do another function
0:23:03
you know we could do choosing we could
0:23:06
we could put a we could put in dynamo db
0:23:11
uh oh there's a frog
0:23:15
we could put a that's a para
0:23:19
why is it he's almost done
0:23:24
no how can that be a frog it's a carrot
0:23:27
it's a it's a frog
0:23:29
it's a snail it's like these little
0:23:31
frogs like this big but they're super
0:23:35
like this big yeah they're like the size
0:23:39
i don't know us quarter
0:23:45
it's like those little it's like the
0:23:46
little birds but with the big boys yeah
0:23:53
they're like they're iconic here like
0:23:57
mostly at night but sometimes during the
0:23:59
day they go off too
0:24:09
we could put a um i mean this is easy to
0:24:12
circumvent but we could
0:24:27
probably yeah and then
0:24:31
put the ip and put some of the ip
0:24:36
that we don't want them to use
0:24:41
yeah you could you could like one thing
0:24:43
that maybe in the future if it's bad if
0:24:46
you get slammed is introducing like rate
0:24:52
um and then if they're if they're like
0:24:56
it's like this i mean it would be a more
0:24:58
sophisticated implementation but like
0:25:02
you could rate limit calls which is
0:25:04
generally probably a good idea at some
0:25:06
point down the road
0:25:11
but then like yeah if they're like
0:25:14
or somebody's like even if it's a bot
0:25:19
ddos you or something bad then you could
0:25:23
just like ban that abusive ip
0:25:29
although i i think i think aws probably
0:25:35
better implementation which is through
0:25:40
firewall the laugh
0:25:45
but that's a that's probably i don't
0:25:47
know how free that is
0:25:52
yeah i probably haven't look into in
0:25:56
in the future i've never i've never used
0:25:59
it yeah yeah just yeah just think when
0:26:02
i'm here thinking about it
0:26:06
it's good it's just good thinking out
0:26:10
all right so i think we might need to
0:26:32
if somebody's sending a
0:26:41
then it's like a special path that all
0:26:44
it does is send a pong back to the
0:26:47
connection who sent it
0:26:55
that would mean that we would have to
0:26:57
fetch the connection id
0:27:01
well the the connection id will come
0:27:09
the the context object which which
0:27:16
the hand the event object i guess
0:27:23
i think we can just grab the
0:27:26
client contacts from there and then just
0:27:29
immediately send back a pawn
0:27:32
back to this client and then that way
0:27:38
i wonder if you even need to send back a
0:27:40
pong but maybe you do
0:27:46
if we don't then how how would
0:27:52
well the server will know the clients
0:27:54
there i wonder if the client websocket
0:28:00
it got back something yeah yeah
0:28:04
then that might be the case
0:28:07
all right um so where do we implement
0:28:14
um broad message to connections
0:28:25
i think it should be broadcast
0:28:28
okay i think i wrote that
0:28:31
broad message send connection ad yeah so
0:28:35
he's broadcasting the message so if we
0:28:51
to connection well this is to send all
0:29:00
this is map this i think if i remember
0:29:07
in the event object um from the handler
0:29:10
the lambda handler then
0:29:14
get the connection id
0:29:17
and then we go to dynamo db
0:29:21
look at that connection id and say
0:29:24
this connection id belongs to this board
0:29:28
and then we get all the users from that
0:29:35
loop over all the users take out the
0:29:38
user who sent the message and then send
0:29:42
that message to all the other users
0:29:45
excluding the user who sent it because
0:29:47
they don't need the message
0:29:49
no they don't need it
0:29:51
right right yeah and in this case
0:29:56
can actually skip all that and just send
0:30:02
to the user who sent it because
0:30:05
we don't we don't want to send back
0:30:07
pongs to the other users we only want to
0:30:10
send back a pong to the user who sent
0:30:14
yeah yeah absolutely
0:30:34
okay so now we can
0:30:52
new api gateway url
0:30:56
oops that's not no it should be here
0:31:06
we need the url which is no hair
0:31:10
uh it's something it's somewhere up
0:31:30
um i think you can actually
0:31:33
so it's called endpoint on line 115.
0:31:45
ah so how about if we make this a global
0:31:50
what um well this is a this function
0:31:56
a new api gateway so we could probably
0:31:58
just reuse this function
0:32:01
because we need the api gateway anyways
0:32:11
yeah yeah yeah true
0:32:16
so if we do basically this
0:32:33
okay and then it would be
0:32:42
then we can basically say await
0:32:45
api post connection
0:32:54
does that take an event yes it does
0:33:05
okay cool to the battle
0:33:09
can i just go outside and sing
0:33:24
live so we need to call
0:33:36
you can basically get rid of this one
0:33:40
login can i uh because this is your code
0:33:43
and i don't really know um
0:33:46
what was the purpose of this
0:33:54
oh you can't i don't know you can get
0:33:58
i think it was just for cloud
0:34:00
cloud uh cloud watch vlog
0:34:04
you know which are yeah
0:34:06
they're free right cloud watch vlogs are
0:34:12
i'm a little teapot that's right
0:34:17
it's an easter egg oh yeah
0:34:26
thinking where to call that function now
0:34:40
gonna get the event.party
0:34:47
it's only going to say ping it's not
0:34:50
going to have the message or the board
0:35:00
so we could we could then send the ping
0:35:10
and then we could say if
0:35:12
message equals ping then just call this
0:35:20
ah okay right right right
0:35:23
yeah if the if the key message the or i
0:35:28
message its value is ping then we just
0:35:33
call that function and immediately like
0:35:36
exit out of the the lambda
0:36:14
i think you meant triple equals
0:36:19
or double equals on the message equal
0:36:24
yeah i'm just looking for it at the
0:36:27
moment where did it go
0:36:47
that on to what does this return
0:36:53
params person connection
0:37:00
do we need to return a status code of
0:37:15
does it need a status code of 200
0:37:22
if it's gonna return that the string
0:37:28
i think but i could be wrong here
0:37:30
because i'm doing this
0:37:33
return the string what string
0:37:42
i was confused about how that worked in
0:37:47
learning more about how it works so
0:37:54
that you see in api gateway and also the
0:37:58
here that end point that
0:38:01
um you actually use this line on 143 to
0:38:05
send a post request
0:38:07
with that param data that you have there
0:38:10
the connection id and the data
0:38:12
and it actually sends like
0:38:14
essentially a post request to that
0:38:16
endpoint with these parameters
0:38:20
just like an ordinary http post request
0:38:23
and then from there i think
0:38:28
websocket api gateway whatever actually
0:38:32
then sends the message
0:38:35
from that post request back to the
0:38:38
connection id somehow
0:38:40
but it actually doesn't
0:38:44
never gets anything back from this
0:38:47
lambda because this lambda is actually
0:38:59
right websocket right not not the actual
0:39:03
so yeah that took me a long time to
0:39:06
understand but then i was like
0:39:13
like that's what that's what happens
0:39:17
so there's actually an endpoint too
0:39:20
um that you can you can see them in api
0:39:23
gateway and if you send a post request
0:39:26
endpoint you'll actually get messages um
0:39:29
in a websocket if you send the right
0:39:35
like if you opened up the
0:39:37
the what was the other thing pi socket
0:39:41
yeah yeah you got that client's
0:39:43
connection id and then you opened up
0:39:45
postman and then you got that endpoint
0:39:49
um like a post request with data to that
0:39:52
endpoint with that connection id then in
0:39:55
pi socket that client would would get
0:40:03
aws handles that somehow like they get
0:40:07
that post request and then they must do
0:40:10
send it back to the client
0:40:13
right right right so if that's the case
0:40:16
then we can basically um
0:40:19
say that if the poster connection
0:40:22
returns a pong then basically just
0:40:34
uh i don't know if you're gonna get
0:40:36
anything back from that post the
0:40:38
connection but maybe
0:40:40
that's a good question
0:40:44
that's actually not a bad
0:40:47
question to think about
0:40:50
but i don't think it's important because
0:40:52
i'm not doing that with the other
0:40:54
broadcast message function
0:40:57
i'm not waiting for a response and just
0:41:08
that is yeah that is a good question i
0:41:10
wonder what what you get back from that
0:41:12
post to connection
0:41:14
hang on but you are also returning it
0:41:17
the entire promise
0:41:22
yeah but i'm not like i don't i think
0:41:25
the only thing i'm doing is just
0:41:32
were successful or rejected and then
0:41:36
doing something else i can't remember
0:41:39
it's been a long time
0:41:41
yeah yeah it must have been to be honest
0:41:45
all right um in that case
0:41:49
at the moment what it's doing is
0:41:57
event um this function
0:42:00
the module handler and then
0:42:04
is just checking if the message object
0:42:11
which is which would be coming from the
0:42:15
if it's pink then is just returning
0:42:25
which sends a pong
0:42:35
we can try this but i'll probably
0:42:45
is it ap is the api gateway down
0:42:51
what'd you mean down
0:42:53
like did you take it did you take down
0:42:58
no i didn't take out
0:43:02
we could test it in pie socket then
0:43:06
actually yeah let's give that a try
0:43:11
and and don't forget then in the client
0:43:13
side that you need to
0:43:19
you know when you send the websocket you
0:43:21
need to put it in the message you need
0:43:25
put it in a message key key on your
0:43:30
key message value yeah
0:43:38
what was it pi socket what
0:43:40
i think that's it i think there's just
0:43:44
drop down or something
0:43:46
they're asking me for money which i
0:43:48
don't know it's free it's free
0:43:51
uh tools go to tools
0:43:55
i think it's the console oh there you go
0:43:59
looks like a test right right i see
0:44:02
if we do that over here
0:44:09
and basically get the url from
0:44:20
end that's the euro here
0:44:34
okay connection is closed
0:44:38
did we take it down
0:44:41
oh i don't know did you
0:44:43
i have no idea let's have a look
0:44:54
so uh when it when is the national
0:44:59
wednesday is this oh really
0:45:04
yeah that's thanks
0:45:12
do you have do you have somebody
0:45:15
else who wants to join
0:45:19
someone that i haven't
0:45:28
i can ask a friend too
0:45:31
if they wanted if they want to join if
0:45:33
if you want it's up to you
0:45:40
similar because i think what we
0:45:43
need to get done is basically some of
0:45:48
that's what i guess and the xss feature
0:45:59
until we find out another
0:46:05
hey it's like free pen testing like free
0:46:08
yeah yeah free fantastic that's great
0:46:12
oh no why did i no no no no come on
0:46:16
objective says about time
0:46:21
do you think you think ganesha's moving
0:46:23
to greener pastures
0:46:31
okay that's my fault i was entering the
0:46:37
which is obviously not gonna work
0:46:51
but yeah i think this
0:46:54
this project is nearly there probably a
0:47:14
still there interesting
0:47:24
so why does it not zoom back socket
0:47:33
check the console for error occurred in
0:47:43
websockets failed events
0:47:50
small settlement error
0:48:09
can you share the link i'll try on my
0:48:29
you sure the api gateway is up
0:48:34
i'm not sure about that either
0:48:38
oh yeah that must be up there that must
0:48:48
it did did the on connect get changed
0:48:53
i don't think it did
0:49:08
um i'm connected and i get changed
0:49:11
i'm pretty sure it didn't get changed
0:49:15
you guys push anything up to aws
0:49:28
so you didn't run sam
0:49:51
why would this be happening now
0:49:54
is it in cloud watch
0:49:56
or anything i'm gonna go and check there
0:50:25
welcome on connect function
0:50:27
yeah might as well
0:50:31
this is 17th of jan well that's far
0:50:36
this is 15th of jan so we haven't got
0:50:42
websocket disconnects
0:50:44
website handler function okay
0:50:47
this is on the ninth
0:50:52
oh there are way too many
0:50:56
default on connect
0:50:59
can we get the date of these
0:51:08
i think i think i think gekdev wants the
0:51:13
host audience interactive show
0:51:18
if you know what i'm saying
0:51:21
i know exactly what you're saying which
0:51:23
is one of the reasons why
0:51:28
we're going for local hosts at the
0:51:35
because we do want to get this project
0:51:49
so that's not there
0:51:53
wraps up disconnect connect
0:51:59
so there are no there are no logs either
0:52:09
not that is not the case
0:52:11
scrambling api stack
0:52:23
looks like the websocket connection
0:52:28
was modified 11 this is the last
0:52:30
modified 11 days ago according to aws
0:52:40
i don't remember unless i've got bad
0:52:42
memory let me have a look it'll be hard
0:52:45
to remember for sure i never remember
0:52:54
roll card is that one
0:53:04
it's here i'll actually send you the
0:53:08
yeah if you can that'd be great so did
0:53:15
uh yeah yeah that was from the
0:53:18
lambda console in aws
0:53:27
because i'm trying to look at the logs
0:53:28
of the recent invocations
0:53:34
and see if this actually is getting spun
0:53:39
i don't know why it's taking me forever
0:53:47
uh well it was on the previous page but
0:53:50
if you go to the logs it looks like it
0:53:57
because this is from today
0:54:03
i think he ran but he gave the error
0:54:07
yeah let me just go to the log itself
0:54:22
yeah there are no errors
0:54:48
with the on connect
0:54:52
oh oh with the on connect you
0:55:01
oh oh because if you look at the code
0:55:04
for the onconnect handler on line 34. i
0:55:08
you need to send the query string
0:55:11
in the websocket connection
0:55:14
for the board id so that
0:55:17
the onconnect handler knows which board
0:55:19
id you're connected to
0:55:21
and then and then puts that in dynamodb
0:55:24
along with the connection id
0:55:28
oh all right right right right right and
0:55:31
say i see i see that makes sense now who
0:55:34
wrote the documentation
0:55:40
okay so how about if you open a postman
0:55:44
all boards and just basically
0:55:50
i would like to see cartier come back to
0:55:58
objective is asking for cartier
0:56:06
yeah i'll probably
0:56:09
doubt it because he he must be really
0:56:13
great full-time projects and
0:56:19
so i'm not entirely sure but yeah okay
0:56:22
let's see how it goes
0:56:26
i think he said he's in india right now
0:56:32
uh so that one board id
0:56:36
did you mean this way
0:56:42
pride and then query string and then
0:56:50
honestly i don't remember but it's
0:56:52
definitely on the client side
0:56:54
i think i think you put board id
0:56:56
actually try board id
0:57:01
yeah try that and then equal
0:57:12
so now what do i do
0:57:15
it's like dusting off old code
0:57:20
all right so we can connect so now we
0:57:23
want to spend a message with a pain
0:57:30
does it have to be in a body
0:57:34
does it have to be inside of a body or
0:57:36
it takes care of that automatically i
0:57:38
don't remember let's find out
0:57:41
so where's the message here
0:57:48
did you deploy this
0:57:58
anyway we can come back tomorrow
0:58:01
we can come back good progress good
0:58:03
progress i think it'll work
0:58:06
we're getting there
0:58:07
we can't almost it wasn't so bad
0:58:10
actually the heartbeat then i thought it
0:58:15
special api of the websocket api that
0:58:19
you use to do it but i guess not
0:58:23
yeah i thought it was going to be a lot
0:58:30
just kind of call-in
0:58:33
api and that would take the
0:58:37
or or the heavy lifting
0:58:40
yeah it wasn't that hard that at all if
0:58:51
all right man um do you wanna do the
0:58:55
yeah so today we got to
0:58:58
uh work on the websocket heartbeat
0:59:04
are using a simple implementation of
0:59:07
just using a set interval
0:59:10
on the client side to send a ping to the
0:59:14
which is aws api gateway
0:59:22
message lambda receiving messages we're
0:59:24
just looking for that ping
0:59:28
we're just simply going to send back a
0:59:30
pong back to that connection id
0:59:37
featuring tomorrow we're gonna have a
0:59:41
testing in tomorrow's so if you wanna
0:59:45
be a part of the fun um join us
0:59:48
tomorrow's same time
0:59:58
all right guys have a good night and
1:00:01
evening wherever you are in the world
1:00:05
have a great night thank you everyone
1:00:08
have a great night