Orbited For A New WebOrbiter

From LinuxMCE
Jump to: navigation, search
Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
1404 Unknown N/A N/A
Usage Information

Concept - What is a WebOrbiter

A web-based orbiter is basically a web page that one can browse from any device.


Today we have our Web Orbiter. It utilize the BD stack to transmit Orbiter images to a web browser. When user click somewhere on the showed picture (Orbiter screen), coordinates are sent back and translated into a command/button click that is interpreted and executed by lmce. If that result in another Orbiter screen that screen is rendered into a picture and sent to web browser.

What would be really nice to have is a weborbiter that consist of code and graphics renderad in webbrowser on client (no more transmit of static pictures). In my opinion there´s a couple of ways to implement this.

  • Use Orbited (www.orbited.org). A software that make it possible to open a tcp socket to a webpage/javascript rendered in a clients webbrowser. Several reference protocols is supported. Like irc, stomp etc.
  • webtoolkit (webtoolkit.eu). WebToolkit is c++ <-> html/javascript engine. One create a application on a server to which a user can direct their webbrowser. What is shown in webbroswer depend on what methods you have implemented in c++ code. As with Orbited bi directional communication is supported. WebToolkit try to look similar in syntax to how you program


  • json and rpc. Don´t have much information on how this can be done or if it is possible.


Implementation

There´s a couple of solution/ideas how to do this. One issue that we need to overcome is that it is very hard to communicate from a server to a webbrowser.

With Orbited

Orbited allows you to write real-time web applications, such as a chat room or instant messaging client, without using external plugins like Flash or Java. It enables streaming networking for JavaScript without loading bars or page refreshes. To use Orbited you have a server/proxy app (Orbiter) that run on lmce core. The webbrowser talk to the proxy app and lmce speak socket directly to the proxy. This way we have a solution where we can build a router plugin that talk tcpsocket to Orbited proxy which then translate into web requests and in the end update dom in webbrowser.

Use Case

  • User browse media in weborbiter and click on a media file. A command is sent from webbrowser to Orbited proxy and then through tcpsocket to router plugin. Router plugin what for update and send data back thourgh tcpsocket to Orbited proxy and in the end to the webbrowser.
  • User have a remote control screen opened on his weborbiter. Some other Orbiter send a message to MD to change to play another media file. Router plugin will get inforamtion about what have changed and transmit send that information to Orbited proxy which forward it to the webrowser where our weborbiter is running.

Challenges

  • We need to have a way to identify webbrwser and store static information on the device it is running to be able to identify that particular device later on. Otherwise we cannot assign the weborbiter a unique id in lmce.

Competence needed

  • Python competence
  • Javascript knowledge
  • UI Design
  • C++ knowledge to implement a dce router plugin.


Links

http://orbited.org/wiki/Articles

http://cometdaily.com/2008/07/01/sockets-in-the-browser/



With WebToolkit

http://webtoolkit.eu


json rpc

Write text