| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Transient.Move.Utils
Description
Documentation
initNode :: Cloud () -> TransIO () Source #
ask in the console for the port number and initializes a node in the port specified
 It needs the application to be initialized with keep to get input from the user.
 the port can be entered in the command line with "program -p  start/PORT"
A node is also a web server that send to the browser the program if it has been
 compiled to JavaScript with ghcjs. initNode also initializes the web nodes.
This sequence compiles to JScript and executes the program with a node in the port 8080
ghc program.hs ghcjs program.hs -o static/out ./program -p start/8080
initNode, when the application has been loaded and executed in the browser, will perform a wormhole to his server node.
  So the application run within this wormhole.
Since the code is executed both in server node and browser node, to avoid confusion and in order
 to execute in a single logical thread, use onServer for code that you need to execute only in the server
 node, and onBrowser for code that you need in the browser, although server code could call the browser
 and vice-versa.
To invoke from browser to server and vice-versa, use atRemote.
To translate the code from the browser to the server node, use teleport.
inputNodes :: Cloud b Source #
ask for nodes to be added to the list of known nodes. it also ask to connect to the node to get his list of known nodes
simpleWebApp :: Integer -> Cloud () -> IO () Source #
executes the application in the server and the Web browser.
 the browser must point to http://hostname:port where port is the first parameter.
 It creates a wormhole to the server.
 The code of the program after simpleWebApp run in the browser unless teleport translates the execution to the server.
 To run something in the server and get the result back to the browser, use  atRemote
 This last also works in the other side; If the application was teleported to the server, atRemote will
 execute his parameter in the browser.
It is necesary to compile the application with ghcjs:
ghcjs program.js ghcjs program.hs -o static/out
./program