<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MonoDevelop &amp; Visual Studio &#8211; Abetoo IoT wiki</title>
	<atom:link href="https://abetoo.com/wiki/article-categories/visualstudio/feed" rel="self" type="application/rss+xml" />
	<link>https://abetoo.com/wiki</link>
	<description>Abetoo IOT Framework</description>
	<lastBuildDate>Thu, 29 Jun 2017 10:37:02 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.8.25</generator>

<image>
	<url>http://abetoo.com/wiki/wp-content/uploads/cache/2017/04/logo_white/141125888.png</url>
	<title>MonoDevelop &amp; Visual Studio &#8211; Abetoo IoT wiki</title>
	<link>https://abetoo.com/wiki</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Introduction. Installation</title>
		<link>https://abetoo.com/wiki/knowledge-base/visualstudioinstallation</link>
		<comments>https://abetoo.com/wiki/knowledge-base/visualstudioinstallation#respond</comments>
		<pubDate>Tue, 25 Apr 2017 17:59:37 +0000</pubDate>
		<dc:creator><![CDATA[abetoo]]></dc:creator>
		
		<guid isPermaLink="false">http://localhost/wordpress_abetoo_wiki/knowledge-base/where-are-your-offices-located/</guid>
		<description><![CDATA[You can install the dependencies either automatically with nuget packages or manually. The easiest way to do that is, of course, through the use of nuget packages manager within MonoDeveop/Visual Studio IDE. PM&#62; Install-Package AbetooLibrary You can also look for nuget package online search with the keyword AbetooLibrary. If you want [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>You can install the dependencies either automatically with nuget packages or manually. The easiest way to do that is, of course, through the use of nuget packages manager within MonoDeveop/Visual Studio IDE.</p>
<p><strong>PM&gt; Install-Package AbetooLibrary</strong></p>
<p>You can also look for nuget package online search with the keyword <strong>AbetooLibrary.</strong></p>
<p>If you want to install it manually just download the library. (You have to install the dependencies too)</p>
<aside class="download-box">

	<img width="180" height="86" src="https://abetoo.com/wiki/wp-content/uploads/2017/05/mono_vs_logo.png" class="attachment-full size-full wp-post-image" alt="" srcset="https://abetoo.com/wiki/wp-content/uploads/2017/05/mono_vs_logo.png 180w, https://abetoo.com/wiki/wp-content/uploads/2017/05/mono_vs_logo-50x24.png 50w" sizes="(max-width: 180px) 100vw, 180px" />
	<div
		class="download-count">373 downloads</div>

	<div class="download-box-content">

		<h1 id="visual-studiomonodevelop-library" >Visual Studio/MonoDevelop Library</h1>

		
		<a class="download-button" title="Version 1.1.5" href="http://abetoo.com/wiki/download/406/" rel="nofollow">
			Download File			<small>AbetooLibrary_1_1_5.zip &ndash; 9 KB</small>
		</a>

	</div>
</aside>



<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://abetoo.com/wiki/knowledge-base/visualstudioinstallation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First steps. Hello World</title>
		<link>https://abetoo.com/wiki/knowledge-base/visualstudiohelloworld</link>
		<comments>https://abetoo.com/wiki/knowledge-base/visualstudiohelloworld#respond</comments>
		<pubDate>Tue, 25 Apr 2017 17:59:37 +0000</pubDate>
		<dc:creator><![CDATA[abetoo]]></dc:creator>
		
		<guid isPermaLink="false">http://localhost/wordpress_abetoo_wiki/knowledge-base/our-content-policy/</guid>
		<description><![CDATA[Once the package is installed let&#8217;s go with a very basic example created as a console project: Let&#8217;s check it out the code a little bit deeper. First at all we have to define the connection parameters, there are only 2 parameters so It&#8217;s very simple. We have to introduce [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Once the package is installed let&#8217;s go with a very basic example created as a console project:</p>
<pre class="brush: csharp; title: ; notranslate">
namespace abetooTest
{
 class Program
 {
 static void Main(string[] args)
 {
 // Connection parameters
 const String myChannel =
 &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
 &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;;
 
 const int heartBeat = 4;

 // Connection
 AbtooConnection abconnection = new AbtooConnection(myChannel, heartBeat);
 abconnection.connect();

 // Messages Listener
 abconnection.messageReceived += ((sender, abtoomsg) =&gt;
 {
 AbtooMessage abmsg = (AbtooMessage)abtoomsg;
 Console.WriteLine(abmsg.body);
 });

 Console.ReadLine();
 }
 }
}
</pre>
<p>Let&#8217;s check it out the code a little bit deeper.</p>
<p>First at all we have to define the connection parameters, there are only 2 parameters so It&#8217;s very simple. We have to introduce a valid <strong><em>channel id </em></strong>string and a <strong><em>heartbeat </em></strong>timeout in minutes.</p>
<pre class="brush: csharp; title: ; notranslate">
// Connection parameters
 const String myChannel =
 &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
 &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;;
 
 const int heartBeat = 4;
</pre>
<ul>
<li><em><strong>channel id</strong></em> define our local channel wich we are listening to.</li>
<li><em><strong>heartbeat</strong> </em>is used to monitor the channel health and to reestablish the connection if it was lost.</li>
</ul>
<p>Then, once we&#8217;ve defined this parameters we can instantiate a new AbtooConnection object and launch the connection.</p>
<pre class="brush: csharp; title: ; notranslate">
// Connection
 AbtooConnection abconnection = new AbtooConnection(myChannel, heartBeat);
 abconnection.connect();
</pre>
<p>Lastly we define a Listener to catch all the incoming messages.</p>
<pre class="brush: csharp; title: ; notranslate">

// Messages Listener
abconnection.messageReceived += ((sender, abtoomsg) =&gt;
{
AbtooMessage abmsg = (AbtooMessage)abtoomsg;
Console.WriteLine(abmsg.body);
});

</pre>
<p>Whenever we receive a new message the listener is triggered and we see the body message in the screen.</p>
<p><strong>Notice that the body message is coded as a string so it&#8217;s easy to send serialized data like XML or JSON.</strong></p>
]]></content:encoded>
			<wfw:commentRss>https://abetoo.com/wiki/knowledge-base/visualstudiohelloworld/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To Infinity and Beyond</title>
		<link>https://abetoo.com/wiki/knowledge-base/visualstudiosendmessage</link>
		<comments>https://abetoo.com/wiki/knowledge-base/visualstudiosendmessage#comments</comments>
		<pubDate>Tue, 25 Apr 2017 17:59:37 +0000</pubDate>
		<dc:creator><![CDATA[abetoo]]></dc:creator>
		
		<guid isPermaLink="false">http://localhost/wordpress_abetoo_wiki/knowledge-base/who-are-we/</guid>
		<description><![CDATA[Once we&#8217;ve created our channel id and we are familiarized with our hello world example, we are ready to start sending messages of any kind. Anyway remember that messages have string format so we can send serialized objects in XML/JSON formats as well as a plain text. The following example [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Once we&#8217;ve created our <em><strong>channel id</strong></em> and we are familiarized with our hello world example, we are ready to start sending messages of any kind.</p>
<p>Anyway remember that messages have string format so we can send serialized objects in XML/JSON formats as well as a plain text.</p>
<p>The following example will send a fixed message every 10sec.:</p>
<pre class="brush: csharp; title: ; notranslate">
using Abetoo;
using System;
using System.Threading;

namespace abetooTest
{
 class Program
 {
 static void Main(string[] args)
 {
 // Connection parameters
 const String myChannel =
 &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
 &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;;
 
 const int heartBeat = 4;

 // Connection
 AbtooConnection abconnection = new AbtooConnection(myChannel, heartBeat);
 abconnection.connect();

 // Messages Listener
 abconnection.messageReceived += ((sender, abtoomsg) =&gt;
 {
 AbtooMessage abmsg = (AbtooMessage)abtoomsg;
 Console.WriteLine(&quot;Message received:&quot; + abmsg.body);
 });

 // Send message every 10 sec.
 const String remoteChannel =
 &quot;-uC6s1LfZaEuw9AK0Js1w9w636243459698606497#&quot; +
 &quot;b90a9186b9b61ead17d51251f689aea1779d5203&quot;;
 String message = &quot;Hello from this side&quot;;
 String correlationId = &quot;id1&quot;;

 while (true)
 {
 if (abconnection.sendMessage(remoteChannel, message, correlationId))
 Console.WriteLine(&quot;Message sent!&quot;);
 else
 Console.WriteLine(&quot;Message not sent!&quot;);
 Thread.Sleep(10000);
 }
 }
 }
}
</pre>
<p>The only difference from the hello world code is the introduction of a loop where the sending messages process take place:</p>
<pre class="brush: csharp; title: ; notranslate">
// Send message every 10 sec.
 const String remoteChannel =
 &quot;-uC6s1LfZaEuw9AK0Js1w9w636243459698606497#&quot; +
 &quot;b90a9186b9b61ead17d51251f689aea1779d5203&quot;;
 String message = &quot;Hello from this side&quot;;
 String correlationId = &quot;id1&quot;;

 while (true)
 {
 if (abconnection.sendMessage(remoteChannel, message, correlationId))
 Console.WriteLine(&quot;Message sent!&quot;);
 else
 Console.WriteLine(&quot;Message not sent!&quot;);
 Thread.Sleep(10000);
 }
</pre>
<p>There are 3 new parameters , the <em><strong>channel target</strong></em>, the <em><strong>body message</strong></em> itself and a <em><strong>correlation id</strong></em>. The meaning of this parameters is very straightforward. The <em><strong>channel target</strong></em> is the channel id used for the target device we want to send the message. The <em><strong>body message,</strong></em> as described before, could be any XML/JSON string, in this particular case, is a simple plain text. Lastly the <em><strong>correlation id</strong></em> is used to keep track about the messages sent/received. If you want to use a challenge/response approach you can associate the challenge sent message with a correlation id, once a message is received you can use its correlation id to identify the associated challenge message.</p>
<p><em><strong>Correlation id</strong></em> is optional, mostly used only when you are using a challenge/response approach like if you are using a regular <strong>webservice</strong>.</p>
<p>If you launch this code you&#8217;ll see something like that:</p>
<p><a href="http://abetoo.com/wordpress_abetoo_wiki/wp-content/uploads/2017/05/messages_sended.bmp"><img class="aligncenter wp-image-133 size-full" src="http://abetoo.com/wiki/wp-content/uploads/2017/05/messages_sended.bmp" alt="" width="675" height="320" /></a></p>
<p>Why are you getting this message for the very first message sent?</p>
<p>The answer is quite simple, once you launch the connection process with the line,</p>
<pre class="brush: csharp; title: ; notranslate">
AbtooConnection abconnection = new AbtooConnection(myChannel, heartBeat);
abconnection.connect();
</pre>
<p>The connection doesn&#8217;t take place instantly. It takes a few seconds to establish the connection with the remote server.</p>
<p>If you want to check if the connection is established before you start to send any message you can insert this line,</p>
<pre class="brush: csharp; title: ; notranslate">
while (!abconnection.isConnected()) ;
</pre>
<p>This way our final example looks like this:</p>
<pre class="brush: csharp; title: ; notranslate">
using Abetoo;
using System;
using System.Threading;

namespace abetooTest
{
 class Program
 {
 static void Main(string[] args)
 {
 // Connection parameters
 const String myChannel =
 &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
 &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;;
 
 const int heartBeat = 4;

 // Connection
 AbtooConnection abconnection = new AbtooConnection(myChannel, heartBeat);
 abconnection.connect();

 // Messages Listener
 abconnection.messageReceived += ((sender, abtoomsg) =&gt;
 {
 AbtooMessage abmsg = (AbtooMessage)abtoomsg;
 Console.WriteLine(&quot;Message received:&quot; + abmsg.body);
 });

 while (!abconnection.isConnected()) ;

 // Send message every 10 sec.
 const String remoteChannel =
 &quot;-uC6s1LfZaEuw9AK0Js1w9w636243459698606497#&quot; +
 &quot;b90a9186b9b61ead17d51251f689aea1779d5203&quot;;
 String message = &quot;Hello from this side&quot;;
 String correlationId = &quot;id1&quot;;

 while (true)
 {
 if (abconnection.sendMessage(remoteChannel, message, correlationId))
 Console.WriteLine(&quot;Message sent!&quot;);
 else
 Console.WriteLine(&quot;Message not sent!&quot;);
 Thread.Sleep(10000);
 }
 }
 }
}
</pre>
<p>&#8230; and now if we launch our example we&#8217;ll see  the following console window:</p>
<p><img class="size-full wp-image-138 aligncenter" src="http://abetoo.com/wiki/wp-content/uploads/2017/05/messages_sended_ok_first.bmp" alt="" width="679" height="321" /></p>
<p>But there is no much fun if there is no one to talk to.</p>
<p>Let&#8217;s add another abetoo connection in the same thread:</p>
<pre class="brush: csharp; title: ; notranslate">
using Abetoo;
using System;
using System.Threading;

namespace abetooTest
{
 class Program
 {
 static void Main(string[] args)
 {
 // Connection parameters
 const String myChannel1 =
 &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
 &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;;

 const int heartBeat = 4;

 // Connection
 AbtooConnection abconnection1 = new AbtooConnection(myChannel1, heartBeat);
 abconnection1.connect();

 // Messages Listener
 abconnection1.messageReceived += ((sender, abtoomsg) =&gt;
 {
 AbtooMessage abmsg = (AbtooMessage)abtoomsg;
 Console.WriteLine(&quot;Abetoo 1 message received:&quot; + abmsg.body);
 });

 while (!abconnection1.isConnected()) ;

 const String myChannel2 =
 &quot;-uC6s1LfZaEuw9AK0Js1w9w636243459698606497#&quot; +
 &quot;b90a9186b9b61ead17d51251f689aea1779d5203&quot;;

 // Connection
 AbtooConnection abconnection2 = new AbtooConnection(myChannel2, heartBeat);
 abconnection2.connect();

 // Messages Listener
 abconnection2.messageReceived += ((sender, abtoomsg) =&gt;
 {
 AbtooMessage abmsg = (AbtooMessage)abtoomsg;
 Console.WriteLine(&quot;Abetoo 2 message received:&quot; + abmsg.body);
 });

 while (!abconnection2.isConnected()) ;

 String message1 = &quot;This message was sent from abetoo connection 1!&quot;;
 String message2 = &quot;This message was sent from abetoo connection 2!&quot;;

 // Send message to each other every 10 sec.
 while (true)
 {
 if (abconnection1.sendMessage(myChannel2, message1))
 Console.WriteLine(&quot;Message abetoo 1 sent!&quot;);
 else
 Console.WriteLine(&quot;Message abetoo 1 not sent!&quot;);

 Thread.Sleep(2000);

 if (abconnection2.sendMessage(myChannel1, message2))
 Console.WriteLine(&quot;Message abetoo 2 sent&quot;);
 else
 Console.WriteLine(&quot;Message abetoo 2 not sent!&quot;);

 Thread.Sleep(10000);

 }
 }
 }
}
</pre>
<p>And launching this code we get the following result:</p>
<p><img class="size-full wp-image-142 aligncenter" src="http://abetoo.com/wiki/wp-content/uploads/2017/05/messages_sended_received_dual.bmp" alt="" width="675" height="323" /></p>
<p>Finally to give an example of using the library between two remote applications, I&#8217;ll show you a very basic <strong>chat application with only two users</strong>. Add more functionality or more users is very straightforward.</p>
<p>We&#8217;re going to get the following applications:</p>
<p><a href="http://abetoo.com/wiki/wp-content/uploads/2017/06/vschat1.bmp"><img class="size-full wp-image-440 aligncenter" src="http://abetoo.com/wiki/wp-content/uploads/2017/06/vschat1.bmp" alt="" width="729" height="406" /></a></p>
<p>Let&#8217;s go with the source code of the <strong>User1</strong> Application,</p>
<pre class="brush: csharp; title: ; notranslate">
 AbtooConnection abconnection;

 public form1()
 {
    InitializeComponent();

    // Connection parameters
    const String myChannel =
       &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
       &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;;

    const int heartBeat = 4;

    // Connection
    abconnection = new AbtooConnection(myChannel, heartBeat);

    // Messages Listener
    abconnection.messageReceived += ((sender, abtoomsg) =&gt;
    {
       AbtooMessage abmsg = (AbtooMessage)abtoomsg;
       this.Invoke((MethodInvoker)(() =&gt;
       {
          listBox1.Items.Add(&quot;User2: &quot; + abmsg.body);
          listBox1.SelectedIndex = listBox1.Items.Count - 1;
          listBox1.SelectedIndex = -1;
          listBox1.Refresh();
       }));
   });
   abconnection.connect();
 }

 private void button1_Click(object sender, EventArgs e)
 {
    const String remoteChannel =
       &quot;-uC6s1LfZaEuw9AK0Js1w9w636243459698606497#&quot; +
       &quot;b90a9186b9b61ead17d51251f689aea1779d5203&quot;;

    abconnection.sendMessage(remoteChannel, messageBox.Text);
    listBox1.Items.Add(&quot;Me: &quot; + messageBox.Text);
    listBox1.SelectedIndex = listBox1.Items.Count - 1;
    listBox1.SelectedIndex = -1;
    listBox1.Refresh();
    messageBox.Text = &quot;&quot;;
 }
</pre>
<p>Let&#8217;s go with the source code of the <strong>User2</strong> Application,</p>
<pre class="brush: csharp; title: ; notranslate">
 AbtooConnection abconnection;

 public form1()
 {
    InitializeComponent();

    // Connection parameters
    const String myChannel =
       &quot;-uC6s1LfZaEuw9AK0Js1w9w636243459698606497#&quot; +
       &quot;b90a9186b9b61ead17d51251f689aea1779d5203&quot;;

    const int heartBeat = 4;

    // Connection
    abconnection = new AbtooConnection(myChannel, heartBeat);

    // Messages Listener
    abconnection.messageReceived += ((sender, abtoomsg) =&gt;
    {
       AbtooMessage abmsg = (AbtooMessage)abtoomsg;

       this.Invoke((MethodInvoker)(() =&gt;
       {
          listBox1.Items.Add(&quot;User1: &quot; + abmsg.body);
          listBox1.SelectedIndex = listBox1.Items.Count - 1;
          listBox1.SelectedIndex = -1;
          listBox1.Refresh();
       }));
    });
    abconnection.connect();
 }

 private void button1_Click(object sender, EventArgs e)
 {
    const String remoteChannel =
       &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
       &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;; 
    abconnection.sendMessage(remoteChannel, messageBox.Text);
    listBox1.Items.Add(&quot;Me: &quot; + messageBox.Text);
    listBox1.SelectedIndex = listBox1.Items.Count - 1;
    listBox1.SelectedIndex = -1;
    listBox1.Refresh();
    messageBox.Text = &quot;&quot;;
 }
</pre>
<p>As you can see the only difference is we have to invert the channels. (myChannel/RemoteChannel)</p>
<p>Let&#8217;s go deeper into the source code,</p>
<p>Within the initialization method <em>form() </em>it&#8217;s defined the abetoo connection with the private channel and the heartbeat parameter, (in this case User2 code is shown)</p>
<pre class="brush: csharp; title: ; notranslate">

    ....
    // Connection parameters
    const String myChannel =
       &quot;-uC6s1LfZaEuw9AK0Js1w9w636243459698606497#&quot; +
       &quot;b90a9186b9b61ead17d51251f689aea1779d5203&quot;;

    const int heartBeat = 4;

    // Connection
    abconnection = new AbtooConnection(myChannel, heartBeat);

    ....

</pre>
<p>Then it&#8217;s assigned a listener for incoming messages, to show them,</p>
<pre class="brush: csharp; title: ; notranslate">

     ....

    abconnection.messageReceived += ((sender, abtoomsg) =&gt;
    {
       AbtooMessage abmsg = (AbtooMessage)abtoomsg;

       this.Invoke((MethodInvoker)(() =&gt;
       {
          listBox1.Items.Add(&quot;User1: &quot; + abmsg.body);
          listBox1.SelectedIndex = listBox1.Items.Count - 1;
          listBox1.SelectedIndex = -1;
          listBox1.Refresh();
       }));
    });
    
    ....
</pre>
<p>Finally the connection is launched,</p>
<pre class="brush: csharp; title: ; notranslate">
   ....
   abconnection.connect();
   ....
</pre>
<p>On the other hand, There&#8217;s a function to catch click event on button to send new messages,</p>
<pre class="brush: csharp; title: ; notranslate">
   ....
   const String remoteChannel =
      &quot;-TbVO-rqdA0iWg6-gWh0eeQ636243460528994051#&quot; +
      &quot;735acf9cd6eda96e66ee3858496dca59d750aff1&quot;; 

    abconnection.sendMessage(remoteChannel, messageBox.Text);
    listBox1.Items.Add(&quot;Me: &quot; + messageBox.Text);
    listBox1.SelectedIndex = listBox1.Items.Count - 1;
    listBox1.SelectedIndex = -1;
    listBox1.Refresh();
    messageBox.Text = &quot;&quot;;
    ....
</pre>
<p>Whenever the <em>send</em> button is pressed a new message is sent to the remoteChannel.</p>
<div class="chatappexample" style="width: 800px; height: 500px;"></div>
		<script>
			jQuery(function($){
				var vidbgContainerValue = '.chatappexample';
				var vidbgMp4Value = 'http://abetoo.com/wiki/wp-content/uploads/2017/06/chat_example.mp4';
				var vidbgWebmValue = '#';
				var vidbgPosterValue = '#';
				var vidbgIsMuted = true;
				var vidbgIsLoop = true;
				var vidbgIsOverlay = false;
				var vidbgOverlayColor = '#888';
				var vidbgOverlayAlpha = '0.3';

				$(vidbgContainerValue).vidbg({
					'mp4': vidbgMp4Value,
					'webm': vidbgWebmValue,
					'poster': vidbgPosterValue,
				}, {
					muted: vidbgIsMuted,
					loop: vidbgIsLoop,
					overlay: vidbgIsOverlay,
					overlayColor: vidbgOverlayColor,
					overlayAlpha: vidbgOverlayAlpha,
				});
			});
		</script>
<p>You can download the full source code of this two applications here.</p>
<aside class="download-box">

	<img width="729" height="406" src="https://abetoo.com/wiki/wp-content/uploads/2017/06/vschat1.bmp" class="attachment-full size-full wp-post-image" alt="" />
	<div
		class="download-count">336 downloads</div>

	<div class="download-box-content">

		<h1 id="chat-application" >Chat Application</h1>

		
		<a class="download-button" title="" href="http://abetoo.com/wiki/download/441/" rel="nofollow">
			Download File			<small>vsabetooiotchat.zip &ndash; 10 MB</small>
		</a>

	</div>
</aside>



<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://abetoo.com/wiki/knowledge-base/visualstudiosendmessage/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Library reference</title>
		<link>https://abetoo.com/wiki/knowledge-base/visualstudiocompletereference</link>
		<comments>https://abetoo.com/wiki/knowledge-base/visualstudiocompletereference#respond</comments>
		<pubDate>Tue, 25 Apr 2017 17:59:37 +0000</pubDate>
		<dc:creator><![CDATA[abetoo]]></dc:creator>
		
		<guid isPermaLink="false">http://localhost/wordpress_abetoo_wiki/knowledge-base/another-legal-page/</guid>
		<description><![CDATA[Constructor public AbtooConnection(string QueueName, int HeartBeat) This is the only public constructor available to crete a new abetoo connection. You need to pass 2 parameters. QueueName, local channel id. HeartBeat, Timeout. Used to check the health of a connection. Methods public void connect() Used to establish a connection with the [&#8230;]]]></description>
				<content:encoded><![CDATA[<h3 id="constructor" ><em><strong>Constructor</strong></em></h3>
<h4 style="padding-left: 30px;" id="public-abtooconnectionstring-queuename-int-heartbeat" ><strong>public AbtooConnection(string QueueName, int HeartBeat)</strong></h4>
<p style="padding-left: 30px;">This is the only public constructor available to crete a new abetoo connection. You need to pass 2 parameters.</p>
<ul>
<li><strong>QueueName</strong>, local channel id.</li>
<li><strong>HeartBeat</strong>, Timeout. Used to check the health of a connection.</li>
</ul>
<h3 id="methods" ><em><strong>Methods</strong></em></h3>
<h4 style="padding-left: 30px;" id="public-void-connect" ><strong>public void connect()</strong></h4>
<p style="padding-left: 60px;">Used to establish a connection with the remote server, normally called just after the creation of a new abetoo object. Once the connection is triggered, the abetoo object takes care about connection lost management and reconnections.</p>
<p style="padding-left: 60px;">No parameters.</p>
<h4 style="padding-left: 30px;" id="public-void-disconnect" ><strong>public void disconnect()</strong></h4>
<p style="padding-left: 60px;">Disconnect the current connection from the remote server.</p>
<p style="padding-left: 60px;">No parameters.</p>
<h4 style="padding-left: 30px;" id="public-bool-isconnected" ><strong>public bool isConnected()</strong></h4>
<p style="padding-left: 60px;">Return the status of the connection either connected (true) or disconnected (false)</p>
<p style="padding-left: 60px;">No parameters.</p>
<h4 style="padding-left: 30px;" id="public-bool-sendmessagestring-destinationid-string-body-string-correlationid" ><strong>public bool sendMessage(String DestinationId, String Body, String Correlationid)</strong></h4>
<p style="padding-left: 60px;">Used to send messages to a remote device using it&#8217;s channel id</p>
<ul>
<li><strong>DestinationId</strong>, channel id of the remote device you want to send a message.</li>
<li><strong>Body</strong>, message as a XML/JSON or as a plain text.</li>
<li><strong>Correlationid, </strong>used to keep track about the messages sent/received. If you want to use a challenge/response approach you can associate the challenge sent message with a correlation id, once a message is received you can use its correlation id to identify the associated challenge message.</li>
</ul>
<h3 id="events" ><strong>Events</strong></h3>
<h4 style="padding-left: 30px;" id="eventhandlerabtoomessage-messagereceived" ><strong> EventHandler&lt;AbtooMessage&gt; messageReceived</strong></h4>
<p style="padding-left: 60px;">Triggered whenever a new message is received.</p>
]]></content:encoded>
			<wfw:commentRss>https://abetoo.com/wiki/knowledge-base/visualstudiocompletereference/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
