Best approach for (cross-platform) real-time data streaming in PHP?

后端 未结 3 1362
闹比i
闹比i 2020-12-16 05:37

I\'ve been wondering how to do \"true\" (semi) real-time data streaming with PHP.

Possible applications: chat rooms, auctions, games, etc.

By \"true\", I mea

3条回答
  •  一整个雨季
    2020-12-16 06:02

    PHP is not well suited for implementing realtime data streaming. PHP is very slow, and is not designed to build multi-threaded applications. You'd be better off implementing a full blown socket server in a language like Python or Java.

    That said, I would highly recommend checking out NodeJS: http://nodejs.org/

    It uses an asynchronous event based model for I/O, instead of having threads block in an event loop. NodeJS servers are written in Javascript. NodeJS is fast, scales, and has a low learning curve.

    Clients would connect to a NodeJS HTTP server using long polling Ajax requests. PHP could connect to NodeJS directly and push notifications. Or PHP could write to a message queue, or database, memcache etc, and NodeJS would poll those data stores for updates, and send new messages to clients.

    You would possibly need to write your own daemon to serve as a go between from NodeJS to MySQL, memcached, etc. when polling for updates. NodeJS would keep a socket open with a daemon process. The daemon process would poll data stores for updates, and send the updates to NodeJS. A NodeJS HTTP server would then send those updates to clients.

    See this tutorial for implementing a realtime Twitter stream: http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js/

提交回复
热议问题