Tar*_*Tar 5 javascript php concurrency jquery ipc
我有PHP服务器,其中我需要更新客户端A关于一些客户端B动作,此刻它已经完成.通常如何完成?
我目前的解决方案是:
$.ajax(...).done(function myCallBack(){...});呼吁.myCallBack(){...}其中时发出另一个$.ajax(...).done(function myCallBack(){...});.这样,与服务器的通信保持打开状态,以便随时接收新信息离开$.ajax(...).done(function myCallBack(){...});(并一直产生新的)是这样做的方法吗?
对于会话间通信 - 有没有办法发出事件或类似信号(而不是连续监视某些文件[浪费资源!])?
这就是我解决它的方法:
客户端A留下一个开放的ajax调用::$.ajax(...).done(function myCallBack(){...});在PHP服务器端(会话),A锁定一个semaphore使用sem_acquire($semaphore_A)并等待。
客户端B$semaphore_A使用删除信号量sem_remove($semaphore_A),从而释放A返回客户端 JS 回调myCallBack()。
当然,这非常简单,我使用共享内存(例如shm_attach())在进程之间交换状态和数据。
我花了这么长时间来调试它,因为我打开了一个会话(session_start())并且没有关闭它(session_ write_ close()) - 这锁定了其他进程并阻止了任何并发!
| 归档时间: |
|
| 查看次数: |
1042 次 |
| 最近记录: |