Mohammed Nasman Posted August 12, 2020 Share Posted August 12, 2020 There's a new communication library for Delphi, and it claim to be much faster than indy, I may not sure if it's possible to add support with it to Unigui Quote The fastest communications possible. This is version 7.2 of the NetCom package. In this version, the NetCom package is now multi-platform! You can compile your apps under all platforms in FireMonkey! This set of components is the fastest possible implementation of socket communications, in any language; this is an extremely optimised code on TCP/IP sockets. Forget using a thread per connection: With this suite you can have as many concurrent connections to your server as you like. Threads are used per request and not per connection, and are maintained in a very fast thread pool class. https://github.com/DelphiBuilder/NetCom7 1 Link to comment Share on other sites More sharing options...
RobertoLopes Posted August 13, 2020 Share Posted August 13, 2020 Must not be dificuult. I use sockets on my unigui applications all the time ! Link to comment Share on other sites More sharing options...
RobertoLopes Posted August 13, 2020 Share Posted August 13, 2020 A great addiction would be a WRTC/Websocket components to Unigui, That would be awesome Link to comment Share on other sites More sharing options...
Ronbral Posted August 13, 2020 Share Posted August 13, 2020 Very good news! It would be nice if UniGUI could take advantage of it. Since we no longer see evolutionary updates on Indy. Other frameworks are starting to look for new layers of communication, like Grijjy, which I like a lot. But this really means a huge and heavy job for the FmSoft team ... 1 Link to comment Share on other sites More sharing options...
Mohammed Nasman Posted August 16, 2020 Author Share Posted August 16, 2020 On 8/13/2020 at 5:26 PM, RobertoLopes said: Must not be dificuult. I use sockets on my unigui applications all the time ! @RobertoLopes, that was not what I meant, I was saying that I would like to Unigui implement NetCom as communication library to replace indy in Unigui, it will make it more scalable and faster. Link to comment Share on other sites More sharing options...
Wilton Ergon Posted August 17, 2020 Share Posted August 17, 2020 yes, i see a lot of news that indy is outdated, and there are better solutions, our dear master fashard, i already said that he has plans to implement other http communication means, let's wait for him to comment on that. Link to comment Share on other sites More sharing options...
RobertoLopes Posted August 17, 2020 Share Posted August 17, 2020 On 8/16/2020 at 5:43 AM, Mohammed Nasman said: @RobertoLopes, that was not what I meant, I was saying that I would like to Unigui implement NetCom as compunction library to replace indy in Unigui, it will make it more scalable and faster. Ow yes. Sorry for that. You are right. Link to comment Share on other sites More sharing options...
Bill Demos Posted October 1, 2020 Share Posted October 1, 2020 I am the NetCom library creator! Wow man, how fast did you pick up I put NetCom out there?! I had just made the code public when you wrote this post!!! Anyway, NetCom is a set of non-visible components (doesn't use interface), so it should be very easy for them to be used in any framework. But even if you don't use them for the client side of things, you can always utilise their performance for your middle to server side. BTW, NetCom does not target HTTP stuff, it is meant to be used for high speed backend implementations. I could implement a HTTP set, however, I don't want to contribute at all to the web BROWSER scene, I think web BROWSER based apps should have died a long time ago. For me the future is all native, especially now that we have almost hit the limits of processing speed (you cannot go lower than the atom in a field effect transistor). I think the next decade will strive to put performance back into play. Link to comment Share on other sites More sharing options...
MOGSY Posted October 1, 2020 Share Posted October 1, 2020 Hi RobertoLopes I am using websockets with UniGui, however, I have a difficulty that the client socket when it receive a message, I can't access another frame or component, I been trying to unhide a panel but is not working. Have you come across such issues and if you have how did you solve it. I tried the following test the button works but not if is changed from the webclientsocket event. procedure TMainForm.sgcWebSocketClient1Message(Connection: TsgcWSConnection; const Text: string); begin uniMemo1.lines.add(Text); //memo get updated with the text but memo stays invisible. UniMemo1.Visible := not UniMemo1.Visible; end; procedure TMainForm.UniButton1Click(Sender: TObject); begin uniMemo1.lines.add('Button clicked'); UniMemo1.Visible := not UniMemo1.Visible; end; Regards Link to comment Share on other sites More sharing options...
Mehmet Emin Posted October 1, 2020 Share Posted October 1, 2020 2 hours ago, Bill Demos said: I think web BROWSER based apps should have died a long time ago. For me the future is all native, especially now that we have almost hit the limits of processing speed (you cannot go lower than the atom in a field effect transistor). uniGUI survived for the last 10 years and seems that going to live a long life. It helps us to generate web browser based apps. The directions in software development is decreasing the speed gap between native and web browser based. At some point all browsers will be running native containers. The companies benefit from native apps are those who charge good commissions to publish apps on their native app stores. 1 Link to comment Share on other sites More sharing options...
RobertoLopes Posted October 1, 2020 Share Posted October 1, 2020 3 hours ago, MOGSY said: Hi RobertoLopes I am using websockets with UniGui, however, I have a difficulty that the client socket when it receive a message, I can't access another frame or component, I been trying to unhide a panel but is not working. Have you come across such issues and if you have how did you solve it. I tried the following test the button works but not if is changed from the webclientsocket event. procedure TMainForm.sgcWebSocketClient1Message(Connection: TsgcWSConnection; const Text: string); begin uniMemo1.lines.add(Text); //memo get updated with the text but memo stays invisible. UniMemo1.Visible := not UniMemo1.Visible; end; procedure TMainForm.UniButton1Click(Sender: TObject); begin uniMemo1.lines.add('Button clicked'); UniMemo1.Visible := not UniMemo1.Visible; end; Regards YEs. You CANNOT update your screen components from the receive message events because it's a server side event . You need a client side event to update your screen. You will have to have a TUniTimer (1 second is enouth) and on the received message you put the text on a variable and set a trigger like a boolen variable messageReceived = true and on the timer event you check this variable and change your screen. Like this: procedure TMainForm.sgcWebSocketClient1Message(Connection: TsgcWSConnection; const Text: string); begin txtVar := text; messageReceived := true; end; procedure TMainForm.timerStatusTimer(TComponent: Sender) begin if(messageReceived) then begin messageReceived := false; uniMemo1.lines.add(txtVar); txtVar := ""; end; end; Sorry for my Delphi "skills" I am a C++ Builder guy. Link to comment Share on other sites More sharing options...
RobertoLopes Posted October 1, 2020 Share Posted October 1, 2020 2 hours ago, Mehmet Emin said: uniGUI survived for the last 10 years and seems that going to live a long life. It helps us to generate web browser based apps. The directions in software development is decreasing the speed gap between native and web browser based. At some point all browsers will be running native containers. The companies benefit from native apps are those who charge good commissions to publish apps on their native app stores. Plus, with the right setup you can have (as we actually have) 15000 users on a system. Link to comment Share on other sites More sharing options...
MOGSY Posted October 1, 2020 Share Posted October 1, 2020 Thank you RobertoLopes, By the way what kind of server you use to achieve such a high users on a system? Regards Link to comment Share on other sites More sharing options...
RobertoLopes Posted October 1, 2020 Share Posted October 1, 2020 11 minutes ago, MOGSY said: Thank you RobertoLopes, By the way what kind of server you use to achieve such a high users on a system? Regards We have an IIS Cluster on cloud with 4 servers plus 2 database servers. Running Hyperserver . (I cannot wait to see the Hyperserver Farm running). 1 Link to comment Share on other sites More sharing options...
Wilton Ergon Posted October 1, 2020 Share Posted October 1, 2020 1 hour ago, RobertoLopes said: Temos um cluster IIS na nuvem com 4 servidores mais 2 servidores de banco de dados. Executando o Hyperserver. (Mal posso esperar para ver o Hyperserver Farm rodando). how did you do the load balancer? I'm here trying to implement nginx Link to comment Share on other sites More sharing options...
Wilton Ergon Posted October 1, 2020 Share Posted October 1, 2020 7 hours ago, Bill Demos said: Eu sou o criador da biblioteca NetCom! Nossa, quão rápido você pegou eu coloquei o NetCom lá fora ?! Eu tinha acabado de tornar o código público quando você escreveu este post !!! De qualquer forma, NetCom é um conjunto de componentes não visíveis (não usa interface), então deve ser muito fácil para eles serem usados em qualquer framework. Mas mesmo que você não os use para o lado do cliente, você sempre pode utilizar o desempenho deles do meio para o lado do servidor. BTW, o NetCom não tem como alvo o HTTP, ele deve ser usado para implementações de back-end de alta velocidade. Eu poderia implementar um conjunto HTTP, no entanto, não quero contribuir de forma alguma com a cena do BROWSER da web, acho que os aplicativos baseados no navegador da web deveriam ter morrido há muito tempo. Para mim, o futuro é todo nativo, especialmente agora que quase atingimos os limites da velocidade de processamento (você não pode ir abaixo do átomo em um transistor de efeito de campo). Acho que a próxima década se esforçará para colocar o desempenho de volta em jogo. I tried to use your library to create a chat in unigui, but the message reaches the server, but does not forward it back. Link to comment Share on other sites More sharing options...
Ronbral Posted October 2, 2020 Share Posted October 2, 2020 On 17/08/2020 at 11:40, wilton_rad said: sim, vejo muitas novidades que o indy está desatualizado e existem soluções melhores, nosso querido mestre fashard, já disse que ele tem planos de implementar outros meios de comunicação http, vamos esperar ele comentar isso. Wilton, considering the context of Fashard speech, he referred to communication between the HyperServer ISAPI and the EXE application. Because to maintain compatibility is still done in HTTP, when implementing TCP/IP and or Pipes, we will have better performance in the flow of data between the manager and its nodes. Link to comment Share on other sites More sharing options...
Stemon63 Posted October 2, 2020 Share Posted October 2, 2020 Well, great discussion. Is there any demo to use websocket with NetCom and Unigui? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now