Ajax Push Engine (APE) Vs Node.js

13,954

Solution 1

I strongly suggest you to take a look at the Socket.IO. It's a complete solution for server push, that includes both server side library (written in node.js) and client JS library that is made in a cross browser manner. I see no reason for you to implement your own code for doing what is already made, working and tested.

The only case that socket.IO won't handle is your third request, but that is impossible anyway. If I understand you correctly, you would like two clients to communicate without help of third party server? You can't change HTTP into P2P, at least not now.

If on the other hand you meant to communicate two users via your server (doing something like a private two-person chat) that is totally doable using socket.io.

Solution 2

Even though everybody is running towards node.js right now, we did a chat application based on APE and we are very happy with it.

APE provides what you are looking for quite "out of the box" since it is a combination of server side JS and a client framework APE_JSF that provides the functionality (and more) that you get from socket.io.

In this project we handle ~9000 concurrent users with real time messages. An nginx server is put in front of APE to provide deflate/gzip support

This configuration (without nginx as well) will have no problem dealing with your requirements, even on a "not so high end" machine.

Since you can push data to "a channel" or a single user, you should be able to achieve exactly what you are looking for with APE, from broadcasts to direct messages.

Solution 3

If you are using Apache within your existing stack then, as you already said, there will be problems with scaling you users even if you use long polling instead of continuous one. Solution might be to use high performance web server like nginx in order to handle many concurrent connections.

On the other hand node.js is made for this kind of connection concurrency and there are packages, like socket.io, which can make your developer life much easier since it offers various kinds of transport options with fallback solutions and other useful functionality.

Share:
13,954
Vijay
Author by

Vijay

Updated on June 23, 2022

Comments

  • Vijay
    Vijay about 2 years

    I am considering few options for pushing data from server to the client for my web application in real time.

    I have implemented a polling based (each client sends http requests to the server after every 30 secs.) application which really doesn't scale up after 10 users are in. This app. is built using MySQL, PHP, HTML and jQuery.

    Kindly suggest which one would be better considering the requirements below - APE Vs node.js

    1. Should be able to handle at least 400 concurrent connections at a time
    2. Server should be able to push data to all these clients.
    3. Clients would be sending across data between each other.
  • Vijay
    Vijay almost 13 years
    Thanks! I will checkout Socket.IO, About my 3rd request I meant communication between two users via server.
  • Raynos
    Raynos almost 13 years
    @Vijay relaying messages with a server as a middle man is possible (and simple) using socket.io
  • sharat87
    sharat87 almost 13 years
    Using socket.io means that the existing php application has to be rewritten in node.js right? Or a communication channel has to be used between the two (php and node.js) like an MQ or something?
  • WTK
    WTK almost 13 years
    Yes, existing php logic has to be expressed in node.js, at least the part directly related to server push.
  • nalply
    nalply over 11 years
    Is this your own experience or did you read this up somewhere?
  • TarunG
    TarunG over 11 years
    how did you setup nginx with APE, the way you are describing?
  • Xosofox
    Xosofox over 11 years
    Here is a working config - I'm quite sure it's not perfect, but it did the job: pastebin.com/3Urdy5Fi
  • younes0
    younes0 over 11 years
    I recommend to replace the official client library by this one: github.com/ptejada/ApePubSub I found its API easier and its loading is not messy unlike the official one.
  • radix07
    radix07 over 11 years
    Is APE dead? I wanted to try it out for a project, but their website is pretty useless at the moment...
  • younes0
    younes0 about 11 years
    the project is inactive according to the website and the github account of @paraboul. check the google group : groups.google.com/forum/?fromgroups#!forum/ape-project
  • Xosofox
    Xosofox about 10 years
    APE is still alive, kept online by the community. New website, new wiki, new demos and an active Mailing list - don't dispair
  • kta
    kta over 9 years
    Socket.IO looks impressive.Thinking to use it.