From 6662f25ba92e8041c107711299fc9b598693611b Mon Sep 17 00:00:00 2001 From: Edgar Aroutiounian Date: Sun, 18 Oct 2015 12:40:56 -0700 Subject: [PATCH] Start work on express usage for more elaborate chat server example --- examples/Makefile | 9 ++++++--- examples/chat_server.ml | 1 + examples/chat_server2.ml | 18 ++++++++++++++++++ examples/client.html | 9 +++++---- src/http.ml | 14 ++++++++++++-- src/nodejs_globals.ml | 4 ++-- 6 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 examples/chat_server2.ml diff --git a/examples/Makefile b/examples/Makefile index d3176bd..a875bf3 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -1,4 +1,4 @@ -pkgs := nodejs,socket_io +pkgs := nodejs,socket_io,express # Do not use it breaks the script, very odd! define colorecho @@ -8,15 +8,18 @@ define colorecho endef run:all clean - @npm install socket.io + # @npm install socket.io express node chat_server.js all: @ocamlfind ocamlc chat_server.ml -package $(pkgs) -linkpkg @js_of_ocaml a.out -o chat_server.js +# clean: +# @rm -f chat_server2.cmi chat_server2.cmo \ +# chat_server2.cmt a.out clean: @rm -f chat_server.cmi chat_server.cmo \ - chat_server.cmt a.out +# chat_server.cmt a.out .PHONY:clean diff --git a/examples/chat_server.ml b/examples/chat_server.ml index 054076a..092cd06 100644 --- a/examples/chat_server.ml +++ b/examples/chat_server.ml @@ -1,5 +1,6 @@ (* Basically a translation of http://arminboss.de/2013/tutorial-how-to-create-a-basic-chat-with-node-js/ *) + let program () = let http = Nodejs.Http.require () in let fs = Nodejs.Fs.require () in diff --git a/examples/chat_server2.ml b/examples/chat_server2.ml new file mode 100644 index 0000000..e03ab01 --- /dev/null +++ b/examples/chat_server2.ml @@ -0,0 +1,18 @@ +let program () = + let express = Express.require () in + let app = express##call() in + let server = + (Nodejs.Http.require ())##createServer_withapp app + in + let io = (Socket_io.require ())##call_arg server in + let port = 8080 in + server##listen port (Js.wrap_callback (fun () -> print_endline "Server Running")); + app##use (Js.wrap_callback begin fun req res -> + print_endline "serving" + end) + +let run p = + ignore (p ()) + +let () = + run program diff --git a/examples/client.html b/examples/client.html index f0892f0..7faebf9 100644 --- a/examples/client.html +++ b/examples/client.html @@ -3,11 +3,12 @@