I would do this with constant timestep. It's by far more easy to code. Each update function does one step according to environement. You don't have to update the browser each step. You can compute 10 or 100 steps and then send results to browser.
It will be much more accurate this way. Lot of small simple steps are much easier to code than delta time depending functions (a nightmare).
If you are using variable time steps. When time step is big, you could have scenario where an ant is on point A at t0 and point B at t+delta. You update the ant first, it ends in point B. The you update a food respawn point between A and B that should have respawn at t0+ 1/3 delta. The ant passed by without seening the food. The simulation is wrong.
Other things you'll probably need :
- To be really accurate you must check collision between segments [previous position - new position] rather than points. Otherwise ants may cross themselve without colliding. Check physics engines.
- Avoid to send all objects to your browser. Use Octrees or quadtrees to quickly determine wich subset of your data correspond to the area displayed by browsers.
Strange choice to do this in Node.js, I would use a Java or a real oop language.
You'll find lot of useful help on game developer forums.