diff --git a/examples/demo/.gitignore b/examples/demo/.gitignore new file mode 100644 index 0000000..b10d2cb --- /dev/null +++ b/examples/demo/.gitignore @@ -0,0 +1,15 @@ +.dub +docs.json +__dummy.html +docs/ +/demo +demo.so +demo.dylib +demo.dll +demo.a +demo.lib +demo-test-* +*.exe +*.o +*.obj +*.lst diff --git a/examples/demo/Makefile b/examples/demo/Makefile new file mode 100644 index 0000000..8057a18 --- /dev/null +++ b/examples/demo/Makefile @@ -0,0 +1,8 @@ +all: + dub build --config=SERVER + dub build --config=CLIENT + +clean: + dub clean --all-packages + $(RM) -fr .dub/ dub.selections.json + $(RM) -fr ./server ./client diff --git a/examples/demo/dub.json b/examples/demo/dub.json new file mode 100644 index 0000000..9eb5ccb --- /dev/null +++ b/examples/demo/dub.json @@ -0,0 +1,34 @@ +{ + "authors": [ + "mw66" + ], + "copyright": "Copyright © 2024, mw66", + "description": "msgpack-rpc-d demo.", + "license": "MIT", + "name": "demo", + "configurations": [ + { + "name": "SERVER", + "targetName": "server", + "targetType": "executable", + "versions": [ + "SERVER" + ] + }, + { + "name": "CLIENT", + "targetName": "client", + "targetType": "executable", + "versions": [ + "CLIENT" + ] + } + ], + "dependencies": { + "vibe-d": "==0.8.6", + "msgpack-rpc": {"path": "../../"} + }, + "subConfigurations": { + "msgpack-rpc": "default" + } +} diff --git a/examples/demo/source/client.d b/examples/demo/source/client.d new file mode 100755 index 0000000..4bce26c --- /dev/null +++ b/examples/demo/source/client.d @@ -0,0 +1,29 @@ +#!/usr/bin/env rdmd + +/+dub.sdl: +dependency "msgpack-rpc" version="~master" path="../../" ++/ + +import std.stdio; + +import msgpackrpc; + +version (CLIENT) { + +void main() { +auto client = new TCPClient(Endpoint(18800, "127.0.0.1")); + +// sync request +auto num = client.call!ulong("sum", 1, 2); +writeln(num); + +// async request: return a Future object +auto future = client.callAsync("sum", 1, 2); +writeln(future.get().as!ulong); // /home/zhou/.dub/packages/msgpack-d/1.0.5/msgpack-d/src/msgpack/value.d + +// notify +client.notify("hello", "hoge"); + +} + +} diff --git a/examples/demo/source/server.d b/examples/demo/source/server.d new file mode 100644 index 0000000..24d1c49 --- /dev/null +++ b/examples/demo/source/server.d @@ -0,0 +1,23 @@ +import std.stdio; + +import msgpackrpc; + +version (SERVER) { + +class FooServer { + ulong sum(ulong l, ulong r) { return l + r; } + + void hello(string msg) { writeln(msg); } +} + +void main() { + writeln("msgpack-rpc-d TCPServer started ..."); + +// TCPServer or UDPServer +auto server = new TCPServer!(FooServer)(new FooServer); +server.listen(Endpoint(18800, "127.0.0.1")); +server.start(); + +} + +} diff --git a/examples/with_http_server/dub.sdl b/examples/with_http_server/dub.sdl index 1415de5..032f466 100644 --- a/examples/with_http_server/dub.sdl +++ b/examples/with_http_server/dub.sdl @@ -2,7 +2,7 @@ name "with_http_server" description "A simple vibe.d server application." copyright "Copyright © 2015, yannick" authors "yannick" -dependency "vibe-d" version="~>0.7.25" +dependency "vibe-d" version="==0.8.6" dependency "msgpack-rpc" version="~master" path="../../" subConfiguration "msgpack-rpc" "integrated" versions "VibeCustomMain" diff --git a/examples/with_http_server/source/app.d b/examples/with_http_server/source/app.d index 0508409..0948236 100644 --- a/examples/with_http_server/source/app.d +++ b/examples/with_http_server/source/app.d @@ -21,7 +21,7 @@ static void main() auto settings = new HTTPServerSettings; settings.port = 9090; settings.bindAddresses = ["0.0.0.0"]; - settings.options = settings.options | HTTPServerOption.parseCookies | HTTPServerOption.parseQueryString; + settings.options = settings.options | HTTPServerOption.ParseCookies | HTTPServerOption.parseQueryString; listenHTTP(settings, router); //start a rpc server diff --git a/package.json b/package.json index c29c3e4..7b5a4e1 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "targetType": "library", "dependencies": { "msgpack-d": ">=1.0.0-beta.7", - "vibe-d": ">=0.7.25" + "vibe-d": "==0.8.6" }, "configurations": [ { @@ -22,5 +22,7 @@ "versions": ["VibeCustomMain", "noExitEventloop"] } ], - "subConfigurations": { "vibe-d": "libevent"} + "subConfigurations": { + "vibe-d": "libevent" + } }