diff options
| author | Per Larsson <[email protected]> | 2022-02-18 14:48:41 +0100 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2022-02-18 14:48:41 +0100 |
| commit | 08cc02bf1b5cad75ed7b97c0dc7cfc082da537c4 (patch) | |
| tree | 8fd8e7189c9807280003eabb3040cb35db2e5cd4 /zenserver-test/zenserver-test.cpp | |
| parent | Web socket client is shared between I/O thead and client. (diff) | |
| download | zen-08cc02bf1b5cad75ed7b97c0dc7cfc082da537c4.tar.xz zen-08cc02bf1b5cad75ed7b97c0dc7cfc082da537c4.zip | |
Basic websocket service and test.
Diffstat (limited to 'zenserver-test/zenserver-test.cpp')
| -rw-r--r-- | zenserver-test/zenserver-test.cpp | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp index b7d157d5a..73048b504 100644 --- a/zenserver-test/zenserver-test.cpp +++ b/zenserver-test/zenserver-test.cpp @@ -2095,31 +2095,47 @@ TEST_CASE("websocket.basic") IoDispatcher IoDispatcher(IoCtx); auto WebSocket = WebSocketClient::Create(IoCtx); - std::atomic_bool Signaled{false}; + std::atomic_bool Done{false}; WebSocketEvent Event; WebSocket->On(WebSocketEvent::kConnected, [&]() { - Event = WebSocketEvent::kConnected; - Signaled = true; + CbObjectWriter Req; + Req.BeginObject("Header"); + Req << "Method"sv + << "TestHelloZen"sv; + Req << "CorrelationId" << uint64_t(1); + Req.EndObject(); + + WebSocket->SendMsg(Req.Save()); }); WebSocket->On(WebSocketEvent::kDisconnected, [&]() { - Event = WebSocketEvent::kDisconnected; - Signaled = true; + Event = WebSocketEvent::kDisconnected; + Done = true; + }); + + CbPackage Response; + WebSocket->OnMessage([&](const CbPackage& Msg) { + Response = Msg; + Done = true; }); WebSocket->Connect({.Host = "127.0.0.1", .Port = 8848, .Endpoint = "/zen"}); IoDispatcher.Run(); - while (Signaled == false && IoDispatcher.IsRunning()) + while (Done == false && IoDispatcher.IsRunning()) { - std::this_thread::sleep_for(std::chrono::seconds(5)); + std::this_thread::sleep_for(std::chrono::seconds(2)); }; - CHECK(Event == WebSocketEvent::kConnected); + CbObject ResponseObject = Response.GetObject(); + std::string_view Message = ResponseObject["Result"].AsString(); + CHECK(Message == "Hello Friend!!"sv); WebSocket->Disconnect(); + + IoDispatcher.Stop(); } # if 0 |