Hey, I've been working with mehtaatur on the chess project and he's finally got me to sign up.

First of, a big shout out to you guys. Any time I've been stuck and mention it to him, a reply to his posts come practically instantly.

Just to clear out a few doubts I've got. What you've been speaking about using the MRL WebUI to interact with the board using web sockets is using the xmpp service you've got?

Also, I've downloaded your source code and have made some changes to personalise MRL for our project. But since I'm really new to this I have absolutely no idea how to convert that source code back into an executable jar like the one you provide to download on your site. Any pointers?

[Edit 07/09/2014]

Hey, saw the new WebGUI service page and am completely lost.

I have been trying to fgure it out from the javadocs page but no progress yet.

I have the following questions in mind:

-How can I get the MRLwebsockets (running on Raspberrypi) to connect to exchange data with our website (chess.riidl.org) which is currently on another host

-Once that connection is established, what exactly needs to be done using the Web GUI (not the REST Api since that doesnt work on websockets) to send and receive data. 

-since the offline commuincation is already estabished using MRL and the online gameplay using chessboard.js and a database to communicate , we are simply stuck on trying to implement the communication using websockets.

Please help us out as soon as can

Thanks

GroG

9 years 8 months ago

Hello and welcome khosrav,
the WebGUI service handles websockets & regular http requests like a web server.

XMPP is a different service and a different protocol - it requires setting up an account (for example a gmail account has its own xmpp account). XMPP is often referred to as "chat, instant messaging, or hangouts" - One of the bonuses of XMPP is that it is "federated" and can do a "reverse proxy" - which is to say - it can receive information from behind a NAT without port forwarding. Something you guys might be interested in.

My recommendation is not to change source to get a "stripped down" version of MRL - I would recommend that you simply "not install" the services you are not interested in.

To make a jar - change the build target of the build.xml to "dist" (for distribution) and build with ant.

khoshrav

9 years 7 months ago

Great.
So I'll read up on how to work with web sockets and work on implementing it through your webGUI. So far however not been able to figure out the service actually
Yep dont intend to strip down mrl anymore. I'm just trying to modify it to run our chessboard python code on startup. But once I edited the code to do that I had no idea how to implement it.

I can get you started quickly - I've made a ChessGameManager service - and have begun putting in the new ChessEngine - cookoo112 ..

There is some protocol of chess moves - what is called ?  ICU ?  

The new chess engine has a processString function which might accept this protocol.

I'm not sure I was still trying to figure out the new chess engine. 

Hey Greg...

Thanks for putting in so much efforts with the game manager service and chess engine.

Guess what, I received the RaspberryPi B+ yesterday, but it is damaged, the memory card dosent stay in place, will be sending it back today for replacement.

So the testing of the game manager will take maybe 1-2 days. OR Would it be possible to test the webgui / game manager on the desktop MRL? so that atleast I could start writing scripts in python.

 

I currently did the following :

  1. Got the chessboard.js and put it in a directory called resource under my MRL installation
    (mrl install) / resource
  2. Made a chess.htm - which incorporates both the chessboard.js (very well written code by the way) .. and uses websockets to send information to MRL.
  3. Started MRL with a very small Python script
  4. Now when I go to http://localhost:7777/chess.htm - it says (connected) at the bottom of the page - this means the websocket has connected the browser's webpage to MRL's WebGUI
  5. When I make a move - it sends the information to the Python script which print it to the Python screen.

I will attach all the files .. and then maybe you can see CAUSE ---->  EFFECT