morozovsk / websocket

simple php websocket server + demos + yii/yii2 integration + php 7 support
368 stars 74 forks source link

request response order #35

Closed molchanov1983 closed 7 years ago

molchanov1983 commented 7 years ago

Hello. My OS is windows 7 -> php 7.1 i have one issue with request/response. I use GenericSelect class. Example: send requests to server 1 - task:'login' ... (take 10 seconds) sent time - 00:00:00 2 - task:'event'.... (take 1 second) sent time - 00:00:01 This is response 1 - task:'login' ... time - 00:00:10 2 - task:'event'.... time - 00:00:10

but i would have this respone 1 - task:'event' ... time - 00:00:01 2 - task:'login'.... time - 00:00:10

Could anybody help me solving this issue? I tried to use timer but unfortunately o had an error inside _createTimer function Thanks

morozovsk commented 7 years ago

Тяжёлые задачи (которые занимают много времени) блокируют всю очередь исполнения. Нужно тяжёлые задачи выносить отдельно. Например в этом примере: https://github.com/morozovsk/websocket-examples/tree/master/chat2/server два процесса. Вам нужно сделать желательно даже три процесса: 1) обрабатывает вебсокеты и асинхронно пересылает команды в два других 2) медленно обрабатывает команды логин 3) медленно обрабатывает события