You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now, Client-Server communication can only originate from the Client-side. Clients usually maintain a single connection to the Server, which they use to communicate with it. This has served Arachni quite well thus far, but results in clients having to poll the server to check on the status of long-running processes, like scans.
In cases where bi-directional support is necessary, both entities have to have an accessible RPC Server. This however is not a viable solution as Clients can rarely expose their network resources to the outside world due to network security measures.
Server-push
Enabling the Server to push its data to the Client, without the Client having to initiate the transaction, would be beneficial under a lot of circumstances, result in less requests having to be performed overall and allow support for more features.
In addition, it would allow for real-time monitoring of Server-side processes, greatly increasing the user-experience.
Proposed implementation
The implementation should merely extend the existing specification in order to maintain backwards compatibility.
A way to do this would be by the Client sending a control message to the Server, flagging the current connection as a Server -> Client one.
In the simplest scenario where bi-direction communication is necessary, the Client would initiate a regular connection to the server used for Client -> Server RPC and an extra connection reserved for Server -> Client RPC.
The Client would then expose its RPC API over that connection in an manner identical to that of the Server.
In high-load situations, the client is free to maintain multiple connections of each type to accommodate the high-performance requirements.
The text was updated successfully, but these errors were encountered:
Current situation
Right now,
Client-Server
communication can only originate from the Client-side. Clients usually maintain a single connection to the Server, which they use to communicate with it. This has served Arachni quite well thus far, but results in clients having to poll the server to check on the status of long-running processes, like scans.In cases where bi-directional support is necessary, both entities have to have an accessible RPC Server. This however is not a viable solution as Clients can rarely expose their network resources to the outside world due to network security measures.
Server-push
Enabling the Server to push its data to the Client, without the Client having to initiate the transaction, would be beneficial under a lot of circumstances, result in less requests having to be performed overall and allow support for more features.
In addition, it would allow for real-time monitoring of Server-side processes, greatly increasing the user-experience.
Proposed implementation
The implementation should merely extend the existing specification in order to maintain backwards compatibility.
A way to do this would be by the Client sending a control message to the Server, flagging the current connection as a
Server -> Client
one.In the simplest scenario where bi-direction communication is necessary, the Client would initiate a regular connection to the server used for
Client -> Server
RPC and an extra connection reserved forServer -> Client
RPC.The Client would then expose its RPC API over that connection in an manner identical to that of the Server.
In high-load situations, the client is free to maintain multiple connections of each type to accommodate the high-performance requirements.
The text was updated successfully, but these errors were encountered: