Broadcasting and receiving messages
What is left for us to do is to connect the model and the view. There are two distinct functions that we need to accomplish.
We must broadcast the current user's message when the Post button is clicked on or when Enter is pressed in the text field. We must also display new messages as they arrive.
Let's first have a look at how we broadcast the user's message when they press Enter:
<button class="btn btn-primary" onclick={broadcast(user)}>Post</button> ... function broadcast(user)(_){ text = Dom.get_value(#entry); Model.broadcast(~{user, text}); Dom.clear_value(#entry); }
When the user presses Enter, the broadcast
function will be invoked. In this function, we first get the user's input using Dom.get_value
, and then we broadcast the message in the second line by calling the broadcast
method in the module Model
. Finally, we clear the content of the input field. That's all it takes to broadcast the message to all the connected clients. Now...