<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6973551355663714674</id><updated>2011-04-21T15:11:30.128-07:00</updated><category term='chat'/><category term='realtime communication'/><category term='GameClientSDK'/><category term='flex'/><category term='communication server'/><category term='adobe air'/><title type='text'>Game Client SDK</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6973551355663714674.post-692533104316557482</id><published>2008-09-05T09:24:00.000-07:00</published><updated>2008-09-05T09:40:08.842-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='communication server'/><category scheme='http://www.blogger.com/atom/ns#' term='GameClientSDK'/><category scheme='http://www.blogger.com/atom/ns#' term='chat'/><category scheme='http://www.blogger.com/atom/ns#' term='realtime communication'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe air'/><title type='text'>Simple Chat with Adobe AIR using GameClientSDK Communication API</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E0K0IlGgP74/SMFecy7W9RI/AAAAAAAAABI/sEjfX5ERWHE/s1600-h/SimpleChat.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_E0K0IlGgP74/SMFecy7W9RI/AAAAAAAAABI/sEjfX5ERWHE/s400/SimpleChat.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5242575290036057362" /&gt;&lt;/a&gt;&lt;br /&gt;This is a very simple chat application developed using the GameClientSDK.&lt;br /&gt;There are 2 important components here:&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Communication:ServerCommunication&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="client"&lt;/span&gt; &lt;span class="attr"&gt;GuestLogin&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;ExpansionID&lt;/span&gt;&lt;span class="kwrd"&gt;="TestExpansion"&lt;/span&gt; &lt;span class="attr"&gt;ConnectNow&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;and&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rooms:Room&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="room"&lt;/span&gt; &lt;span class="attr"&gt;ServerComm&lt;/span&gt;&lt;span class="kwrd"&gt;="{client}"&lt;/span&gt; &lt;span class="attr"&gt;RoomID&lt;/span&gt;&lt;span class="kwrd"&gt;="AnyRoomName"&lt;/span&gt; &lt;span class="attr"&gt;onRPC&lt;/span&gt;&lt;span class="kwrd"&gt;="this.textChat.text += event.RpcParameters.FetchParameterValue('userName') + ': ' + event.RpcParameters.FetchParameterValue('chatMessage') + '\n'"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;We only write one actionscript function to handle the enter event of the textinput. Here we send the text to people in the room.&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; function OnEnter():&lt;span class="kwrd"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt; var &lt;span class="kwrd"&gt;params&lt;/span&gt;:ParameterCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; ParameterCollection();&lt;br /&gt; &lt;span class="kwrd"&gt;params&lt;/span&gt;.AddParameter(&lt;span class="str"&gt;"chatMessage"&lt;/span&gt;,&lt;span class="kwrd"&gt;this&lt;/span&gt;.textInput.text);&lt;br /&gt; &lt;span class="kwrd"&gt;params&lt;/span&gt;.AddParameter(&lt;span class="str"&gt;"userName"&lt;/span&gt;, &lt;span class="kwrd"&gt;this&lt;/span&gt;.client.LoggedInUser.UserName);&lt;br /&gt;          &lt;br /&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.room.MakeRoomRPC(&lt;span class="str"&gt;"anyfunction"&lt;/span&gt;, &lt;span class="kwrd"&gt;params&lt;/span&gt;);&lt;br /&gt;          &lt;br /&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.textInput.text = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;br /&gt;}&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; white-space: normal; "&gt;You can &lt;a href="http://www.mochalife.com/gameclientsdk/examples/simplechat/srcview/index.html"&gt;view the source codes here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; white-space: normal;"&gt;You can &lt;a href="http://www.mochalife.com/gameclientsdk/examples/simplechat/simplechat.html"&gt;test the application here&lt;/a&gt;.&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6973551355663714674-692533104316557482?l=clientsdk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/692533104316557482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6973551355663714674&amp;postID=692533104316557482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/692533104316557482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/692533104316557482'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/2008/09/simple-chat-with-adobe-air-using.html' title='Simple Chat with Adobe AIR using GameClientSDK Communication API'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E0K0IlGgP74/SMFecy7W9RI/AAAAAAAAABI/sEjfX5ERWHE/s72-c/SimpleChat.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6973551355663714674.post-7179959636333581655</id><published>2008-09-03T04:51:00.000-07:00</published><updated>2008-09-08T04:18:11.282-07:00</updated><title type='text'>Card Game Toolkit</title><content type='html'>&lt;iframe src="http://www.mochalife.com/gameclientsdk/examples/cardgametoolkittest/CardToolkitTest.html" width="100%" height="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;We designed generic card and chip components for people who would like to develop card games. Combined with the GameClientSDK you could easily design multiplayer card games like Texas Hold'em Poker. These components can be used with Adobe Flex to speed up game development.&lt;br /&gt;&lt;br /&gt;You can right click and see the source code of the application.&lt;br /&gt;&lt;br /&gt;You can &lt;a href="http://www.mochalife.com/gameclientsdk/downloads/CardGameToolsSDK.zip"&gt;download the Card Game Toolkit here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6973551355663714674-7179959636333581655?l=clientsdk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/7179959636333581655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6973551355663714674&amp;postID=7179959636333581655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/7179959636333581655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/7179959636333581655'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/2008/09/card-game-toolkit.html' title='Card Game Toolkit'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6973551355663714674.post-4651294195271704771</id><published>2008-09-02T07:41:00.000-07:00</published><updated>2008-09-08T04:40:07.724-07:00</updated><title type='text'>Hello World</title><content type='html'>&lt;iframe src="http://www.mochalife.com/gameclientsdk/examples/helloworld/gameclienthelloworld.html" width="100%" height="500"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;This is a very basic "Hello World" application. Click right button to see the source codes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For the full screen version &lt;a href="http://www.mochalife.com/gameclientsdk/examples/helloworld/gameclienthelloworld.html" target="_blank"&gt;click here.&lt;/a&gt;&lt;br /&gt;To download the source codes &lt;a href="http://www.mochalife.com/gameclientsdk/downloads/helloworld.zip" target="_blank"&gt;click here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see it is very easy to communicate to the server with just 2 components. (ServerCommunication and Room)&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Communication:ServerCommunication&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="client"&lt;/span&gt; &lt;span class="attr"&gt;onConnected&lt;/span&gt;&lt;span class="kwrd"&gt;="OnConnected(event)"&lt;/span&gt;&lt;br /&gt; &lt;span class="attr"&gt;ExpansionID&lt;/span&gt;&lt;span class="kwrd"&gt;="TestExpansion"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rooms:Room&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="room"&lt;/span&gt; &lt;span class="attr"&gt;ServerComm&lt;/span&gt;&lt;span class="kwrd"&gt;="{client}"&lt;/span&gt; &lt;span class="attr"&gt;onRoomJoined&lt;/span&gt;&lt;span class="kwrd"&gt;="OnJoinedRoom(event)"&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;onRoomLeft&lt;/span&gt;&lt;span class="kwrd"&gt;="OnLeftRoom(event)"&lt;/span&gt; &lt;span class="attr"&gt;onRPC&lt;/span&gt;&lt;span class="kwrd"&gt;="OnRPC(event)"&lt;/span&gt; &lt;span class="attr"&gt;RoomID&lt;/span&gt;&lt;span class="kwrd"&gt;="HelloWorldTestRoom"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;Below you see the code where we handle some events raised by the room component.&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;import Lib.Communication.ParameterCollection;&lt;br /&gt;import Lib.Communication.Events.RPCEvent;&lt;br /&gt;import Lib.Communication.Events.RoomEvent;&lt;br /&gt;import Lib.Communication.Rooms.Room;&lt;br /&gt;import Lib.Communication.Events.CommunicationEvent;&lt;br /&gt;import Lib.Communication.Events.ServerEvent;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; function ApplicationComplete():&lt;span class="kwrd"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.client.Connect();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Server event handlers&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; function OnConnected(&lt;span class="kwrd"&gt;event&lt;/span&gt;:ServerEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.client.LoginUser(&lt;span class="str"&gt;"guest"&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Room event handlers            &lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; function OnJoinedRoom(&lt;span class="kwrd"&gt;event&lt;/span&gt;:RoomEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.textPublic.text = &lt;span class="kwrd"&gt;event&lt;/span&gt;.UserName + &lt;span class="str"&gt;" has joined.\n"&lt;/span&gt; + &lt;span class="kwrd"&gt;this&lt;/span&gt;.textPublic.text;&lt;br /&gt;}&lt;br /&gt;  &lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; function OnLeftRoom(&lt;span class="kwrd"&gt;event&lt;/span&gt;:RoomEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.textPublic.text = &lt;span class="kwrd"&gt;event&lt;/span&gt;.UserName + &lt;span class="str"&gt;" has left.\n"&lt;/span&gt; + &lt;span class="kwrd"&gt;this&lt;/span&gt;.textPublic.text;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; function OnRPC(&lt;span class="kwrd"&gt;event&lt;/span&gt;:RPCEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.textPublic.text = &lt;span class="kwrd"&gt;event&lt;/span&gt;.RpcParameters.FetchParameterValue(&lt;span class="str"&gt;"userName"&lt;/span&gt;) + &lt;span class="str"&gt;" said \"Hello World\".\n"&lt;/span&gt; + &lt;span class="kwrd"&gt;this&lt;/span&gt;.textPublic.text;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Button event handler&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; function btnClick():&lt;span class="kwrd"&gt;void&lt;/span&gt;&lt;br /&gt;{           &lt;br /&gt;var &lt;span class="kwrd"&gt;params&lt;/span&gt;:ParameterCollection = &lt;span class="kwrd"&gt;new&lt;/span&gt; ParameterCollection();&lt;br /&gt;&lt;span class="kwrd"&gt;params&lt;/span&gt;.AddParameter(&lt;span class="str"&gt;"userName"&lt;/span&gt;, &lt;span class="kwrd"&gt;this&lt;/span&gt;.client.LoggedInUser.UserName);&lt;br /&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.room.MakeRoomRPC(&lt;span class="str"&gt;"HelloWorld"&lt;/span&gt;, &lt;span class="kwrd"&gt;params&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note that proper namespaces should be included in the flex application tag.&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;xmlns:Communication="Lib.Communication.*"&lt;br /&gt;xmlns:Rooms="Lib.Communication.Rooms.*"&lt;br /&gt;&lt;br /&gt;These will be automatically added when you start writing code and don't copy and paste it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6973551355663714674-4651294195271704771?l=clientsdk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/4651294195271704771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6973551355663714674&amp;postID=4651294195271704771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/4651294195271704771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/4651294195271704771'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/2008/09/hello-world.html' title='Hello World'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6973551355663714674.post-449097621048683164</id><published>2008-09-02T03:11:00.000-07:00</published><updated>2008-09-02T03:31:19.574-07:00</updated><title type='text'>Realtime Messenger with Adobe Air</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_E0K0IlGgP74/SL0SHYlqvyI/AAAAAAAAAAY/blC7lFyY5lI/s1600-h/messenger.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_E0K0IlGgP74/SL0SHYlqvyI/AAAAAAAAAAY/blC7lFyY5lI/s400/messenger.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5241365459397951266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Real-time messenger is a Windows AIR application. It supports the basic messenger functionality.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;1 - Lists online people&lt;/li&gt;&lt;br /&gt;&lt;li&gt;2 - Opens a new window when double clicked on people&lt;/li&gt;&lt;br /&gt;&lt;li&gt;3 - Chat windows show "writing a message" status message when other party is typing a message&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;You can check out the &lt;a href="http://www.mochalife.com/gameclientsdk/examples/realtimemessenger/srcview/index.html" target="_blank"&gt;source codes online&lt;/a&gt; or you can &lt;a href="http://www.mochalife.com/gameclientsdk/examples/realtimemessenger/realtimemessenger.zip" target="_blank"&gt;download the project here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mochalife.com/gameclientsdk/examples/realtimemessenger/realtimemessenger.air" target="_blank"&gt;Download the installation file&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Warning: You need the &lt;a href="http://labs.adobe.com/downloads/air.html" target="_blank"&gt;Adobe AIR framework&lt;/a&gt; to run the installation file.&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6973551355663714674-449097621048683164?l=clientsdk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/449097621048683164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6973551355663714674&amp;postID=449097621048683164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/449097621048683164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/449097621048683164'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/2008/09/realtime-messenger-with-adobe-air.html' title='Realtime Messenger with Adobe Air'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_E0K0IlGgP74/SL0SHYlqvyI/AAAAAAAAAAY/blC7lFyY5lI/s72-c/messenger.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6973551355663714674.post-7285997287827380144</id><published>2008-08-28T04:58:00.001-07:00</published><updated>2008-08-28T07:54:12.544-07:00</updated><title type='text'>Example Penguins</title><content type='html'>&lt;iframe src="http://www.mochalife.com/gameclientsdk/examples/penguin/gameclientwebtest.html" width="100%" height="500px" &gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;This application is our very first example. You can right click and see the source code of the application.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;For the full screen version &lt;a href="http://www.mochalife.com/gameclientsdk/examples/penguin/gameclientwebtest.html" target="_blank"&gt;click here.&lt;/a&gt;&lt;br /&gt;To download the source codes &lt;a href="http://www.mochalife.com/gameclientsdk/downloads/penguins.zip" target="_blank"&gt;click here.&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6973551355663714674-7285997287827380144?l=clientsdk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/7285997287827380144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6973551355663714674&amp;postID=7285997287827380144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/7285997287827380144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/7285997287827380144'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/2008/08/example-penguins.html' title='Example Penguins'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6973551355663714674.post-569780608636400398</id><published>2008-08-28T02:12:00.000-07:00</published><updated>2008-08-28T05:04:32.282-07:00</updated><title type='text'>About us</title><content type='html'>Hi everybody,&lt;br /&gt;&lt;br /&gt;We are a group of developers who like to develop real-time applications using Flex/Flash. As you probably know there are many communication servers to accomplish this. However after a couple of years we decided to develop our own communication server and started building our own communication library. And also we thought to make the library open source so everybody around the world could contribute.&lt;br /&gt;&lt;br /&gt;Our main purpose on this project is to develop a Client SDK which should be enough to develop real-time apps without writing single line of server side code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What about the server side?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The server side is not open source yet. It is developped  in C#/.Net.  We add new stuff to it when the need arises. However there are some features included in the current version:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Each developer has a seperated domain in the server&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The server contains programming domains which can be used to seperate the developers. This way people can use the same server for a variaety of applications and they won't even know that other applications are running on the same server.  We call this expansions. Everytime a programmer applies to us to develop a real-time application we create an Expansion for him/her. The developer can start communicating to the server with the unique key assigned to him/her.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;You can use your own users in your own DB&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The server can connect to a third party web site to fetch necessary login information. For instance if you already have a web site and users signed to it, you may develop a chat application using your own DB. You only create a web service or web page like "http://www.yoursite.com/loginCallback.php". We associate this url with your expansion in the server. Everytime a user is trying to connect we request that url from you and get the username and other vital information about that user. (this will be explained further)&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Room structure&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Every expansion (meaning every application) in the server has the capability of opening an infinite number of rooms. You can use these rooms for many different purposes. You can develop chat applications, game applications, white board applications, office communication applications. Anything is possible.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;RPC functionality&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The server has a basic RPC concept built into it. This means users inside the rooms can send messages either to a single person or everybody in the room. The server just relays the messages to clients. This way it is possible for you to develop applications without writing server side code.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;The server is scalable&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Every time a server is too busy to handle the traffic we can add another server next to it. We have a load balancing system to assign users to servers.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6973551355663714674-569780608636400398?l=clientsdk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/569780608636400398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6973551355663714674&amp;postID=569780608636400398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/569780608636400398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/569780608636400398'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/2008/08/hi-everybody-we-are-group-of-developers.html' title='About us'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6973551355663714674.post-2725523264134687650</id><published>2008-08-25T04:01:00.000-07:00</published><updated>2008-09-08T12:16:29.426-07:00</updated><title type='text'>Contact us</title><content type='html'>&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E0K0IlGgP74/SL0eSjnTIEI/AAAAAAAAAA4/zTGODD7gQ9I/s1600-h/kaz.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_E0K0IlGgP74/SL0eSjnTIEI/AAAAAAAAAA4/zTGODD7gQ9I/s200/kaz.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5241378845475676226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;Kaz Baygan: kazb [at] baygan [dot] com&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E0K0IlGgP74/SL0eGDfOlkI/AAAAAAAAAAw/DEiBj5Zs-s8/s1600-h/baran.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_E0K0IlGgP74/SL0eGDfOlkI/AAAAAAAAAAw/DEiBj5Zs-s8/s200/baran.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5241378630693459522" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Baran Baygan:  baran [at] baygan [dot] com&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6973551355663714674-2725523264134687650?l=clientsdk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clientsdk.blogspot.com/feeds/2725523264134687650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6973551355663714674&amp;postID=2725523264134687650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/2725523264134687650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6973551355663714674/posts/default/2725523264134687650'/><link rel='alternate' type='text/html' href='http://clientsdk.blogspot.com/2008/09/contact-us.html' title='Contact us'/><author><name>Baran Baygan</name><uri>http://www.blogger.com/profile/13570982049450897523</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_E0K0IlGgP74/SL0eSjnTIEI/AAAAAAAAAA4/zTGODD7gQ9I/s72-c/kaz.PNG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
