Like console routing, need an ability for following protocols TCPIP, HTTP, gRPC routing
Is your feature request related to a problem? Please describe. Like console mode routing, we need the routing feature for these protocols TCPIP, HTTP, gRPC.
Runtime OS: Linux .NET 7.0.2 pi-cli 4.2.4-rc
Thanks @Nilavarasi-Ashika, for reporting an issue. This is an enhancement request. Can you explain at a high level why you cannot implement a custom Http and gRPC routing service at your end? Our framework already supports custom routing services.
We already have TCP/IP routing service by default.
@Nilavarasi-Ashika: We support UDP terminal router. Please validate and let us know your feedback.
The UDP feature will be released with version 5.10.x
Please let us know when gRPC support will be available.
///
@Nilavarasi-Ashika, we have started a discussion thread to integrate gRPC within terminal framework. We can provide an intermediate implementation with Grpc.Core but this package is due deprecation.
@Nilavarasi-Ashika : We now have the gRPC implementation using the latest recommended approach https://github.com/grpc/grpc-dotnet/issues/2543. This does not use the old Grpc.Core instead using AspNet.Core hosting. Please use the latest code in main branch and provide us feedback from your usage. We plan to release a Nuget package for 5.13.x by Oct-2024 end. To see the sample gRPC integration with terminal framework see https://github.com/perpetualintelligence/terminal/tree/main/apps/s2s
@Nilavarasi-Ashika: Both gRPC and HTTP terminal routing as servers are now supported. We have added the following new packages:
OneImlx.Terminal --> Main Terminal framework package OneImlx.Terminal.AspNetCore --> Hosting the HTTP or gRPC server OneImlx.Terminal.Client --> Client applications (this can be console, ASP.NET, Blazor, Windows Forms or MAUI) OneImxl.Terminal.Authenticaiton --> Terminal server authentication
As mentioned earlier we are targeting release on Oct-end please validate and let us know feedback,
In Http protocol routing the response from server to client not performing. while verified in the code TerminalHttpAppExtensions MapTerminalHttp not returning response message with data to client, it just performing command routing.
@Nilavarasi-Ashika: The syntax and naming of the API have changed, please verify the updated code for your use case. We are still reviewing your request for response handling. @prawasu please review this request.
In TerminalConsoleRouter RunAsync method passing null for CommandRunnerContext.HandlerContext.RouterContext.Properites to ProcessAsync method inside the class CommandRunnerResultSendToFile. Hence console mode routing getting the System.NullReferenceException: 'Object reference not set to an instance of an object.'.
@Nilavarasi-Ashika: Fixed it there was an issue with sample app. Please check. We are working on the response handling as well.
Please review the following issues observed in the latest code:
-
Instead of returning the route result, the method is returning route details. The TerminalRemoteQueue.Enqueue method returns a TerminalRemoteQueueRequest object, not the expected response message. This issue occurs across all modes of routing.
-
For HTTP, TCP, and UDP, the response is not being returned. The data is simply enqueued (containing only the route details as mentioned in point 1), but it is not being sent back to the client.