diff options
| author | Per Larsson <[email protected]> | 2022-02-21 14:22:38 +0100 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2022-02-21 14:22:38 +0100 |
| commit | fd9f9086b3ddd0c38fa87d7e49f6341dacdcc125 (patch) | |
| tree | 50be00e62f1e0d3a0521d08d5c7f00fe7787e014 /zenserver/testing | |
| parent | Basic websocket service and test. (diff) | |
| download | zen-fd9f9086b3ddd0c38fa87d7e49f6341dacdcc125.tar.xz zen-fd9f9086b3ddd0c38fa87d7e49f6341dacdcc125.zip | |
Refactored websocket message.
Diffstat (limited to 'zenserver/testing')
| -rw-r--r-- | zenserver/testing/httptest.cpp | 31 | ||||
| -rw-r--r-- | zenserver/testing/httptest.h | 4 |
2 files changed, 22 insertions, 13 deletions
diff --git a/zenserver/testing/httptest.cpp b/zenserver/testing/httptest.cpp index 41a4f064b..10b69c469 100644 --- a/zenserver/testing/httptest.cpp +++ b/zenserver/testing/httptest.cpp @@ -8,6 +8,8 @@ namespace zen { +using namespace std::literals; + HttpTestingService::HttpTestingService() { m_Router.RegisterRoute( @@ -136,29 +138,34 @@ HttpTestingService::HandlePackageRequest(HttpServerRequest& HttpServiceRequest) return (InsertResult.first->second = new PackageHandler(*this, RequestId)).Get(); } -bool -HttpTestingService::HandleMessage(WebSocketId SocketId, const CbPackage& Msg) +void +HttpTestingService::RegisterHandlers(WebSocketServer& Server) { - using namespace std::literals; + Server.RegisterRequestHandler("SayHello"sv, *this); +} - CbObject Request = Msg.GetObject(); +bool +HttpTestingService::HandleRequest(const WebSocketMessage& RequestMsg) +{ + CbObjectView Request = RequestMsg.Body().GetObject(); - CbObjectView Header = Request["Header"sv].AsObjectView(); - std::string_view Method = Header["Method"].AsString(); - const uint64_t CorrelationId = Header["CorrelationId"].AsUInt64(); + std::string_view Method = Request["Method"].AsString(); - if (Method != "TestHelloZen"sv) + if (Method != "SayHello"sv) { return false; } CbObjectWriter Response; - Response.BeginObject("Header"); - Response << "CorrelationId"sv << CorrelationId; - Response.EndObject(); Response.AddString("Result"sv, "Hello Friend!!"); - PublishMessage(SocketId, Response.Save()); + WebSocketMessage ResponseMsg; + ResponseMsg.SetMessageType(WebSocketMessageType::kResponse); + ResponseMsg.SetCorrelationId(RequestMsg.CorrelationId()); + ResponseMsg.SetSocketId(RequestMsg.SocketId()); + ResponseMsg.SetBody(Response.Save()); + + SocketServer().SendResponse(std::move(ResponseMsg)); return true; } diff --git a/zenserver/testing/httptest.h b/zenserver/testing/httptest.h index 267d59b36..57d2d63f3 100644 --- a/zenserver/testing/httptest.h +++ b/zenserver/testing/httptest.h @@ -23,7 +23,6 @@ public: virtual const char* BaseUri() const override; virtual void HandleRequest(HttpServerRequest& Request) override; virtual Ref<IHttpPackageHandler> HandlePackageRequest(HttpServerRequest& HttpServiceRequest) override; - virtual bool HandleMessage(WebSocketId SocketId, const CbPackage& Msg) override; class PackageHandler : public IHttpPackageHandler { @@ -42,6 +41,9 @@ public: }; private: + virtual void RegisterHandlers(WebSocketServer& Server) override; + virtual bool HandleRequest(const WebSocketMessage& Request) override; + HttpRequestRouter m_Router; std::atomic<uint32_t> m_Counter{0}; metrics::OperationTiming m_TimingStats; |