<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Here is what I think is going wrong, though I'm not entirely sure:<br><br></div>The Yaws yaws_sse:data/1,2 functions assume the data you give them are so-called iodata(). So when you write something like<br><br></div>["Button1", "Button2"]<br><br></div>and send it, it is effectively flattened into a binary<br><br></div><<"Button1Button2">><br><br></div>The iodata() system is really nice for doing scatter/gatter (typo intended) IO, but you have to invent some kind of framing in which you run.<br><br></div>For example, we could use JSON:<br><br></div>X = [<<"Button1">>, <<"Button"2>>],<br></div>Data = yaws_sse:data(jsx:encode(X)),<br>...<br><br></div>which encodes the data into a JSON structure which we can handle on the client side.<br><br></div>Also, look up the iodata() concept. It is pretty nice. There is an old post by James Hague on it:<br><br><a href="http://prog21.dadgum.com/70.html">http://prog21.dadgum.com/70.html</a><br><br></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 23, 2017 at 12:27 PM Gattu shiva krishna <<a href="mailto:gattushivakrishna@utl.in">gattushivakrishna@utl.in</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
         I'm learning to use yaws web-server and I came across server<br>
sent events which is used to send data to the client. To send data to<br>
the client I'm using the function yaws_sse:send_events(A#arg.clisock,<br>
Data). What is the format of arguments that need to be given to this<br>
function. I've googled enough and didn't get any satisfactory results.<br>
Below is a sample application where I'm trying to experiment on<br>
server-sent-events.<br>
<br>
     Here in code I'm trying to create buttons dynamically in client<br>
side based on data that comes from server side.<br>
<br>
---------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
SERVER SIDE CODE:<br>
<br>
  <erl><br>
         out(A) -><br>
             Data = yaws_sse:data(["Button1",<br>
"Button2","Button3","Button4"]),<br>
<br>
             yaws_sse:send_events(A#arg.clisock, Data).<br>
     </erl><br>
<br>
---------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
CLIENT SIDE CODE:<br>
<br>
<script type="text/javascript"><br>
       var source = new EventSource("button.yaws");<br>
       source.onmessage = function(event) {<br>
             var i, buttonsToCreate,buttonContainer, newButton;<br>
<br>
         buttonsToCreate = event.data;<br>
             buttonContainer =<br>
document.getElementById('this_element_contains_my_buttons');<br>
         for (i = 0; i <= buttonsToCreate.length ; i++)<br>
         {<br>
               newButton = document.createElement('input');<br>
               newButton.type = 'button';<br>
               newButton.value = buttonsToCreate[i];<br>
               newButton.id = buttonsToCreate[i];<br>
               buttonContainer.appendChild(newButton);<br>
         }<br>
     };<br>
<br>
     </script><br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div>