ascs 簡明開發教程(十一):如何限速

QQ交流羣:198941541

消息發送總是由使用者觸發,所以速度限制由你自己實現。

重點是消息接收的限速,默認情況下,ascs庫總是儘量的多接收多派發消息,如果你想要接收限速,可以有幾種方法:

1. 同步消息接收(需定義宏ASCS_SYNC_RECV),這個跟消息發送一樣,由使用者觸發,所以你可以自己實現速度限制;

2. 被動消息接收(需定義宏ASCS_PASSIVE_RECV),ascs會在連接建立起來之後,自動調用一次recv_msg,以後將完全由使用者自己調用recv_msg來接收數據,可多次調用,但只會有一次讀取的效果;

3. 故意在on_msg_handle裏面返回false或者0(批量派發時),這樣ascs會延遲一段時間再次派發消息,延時通過宏ASCS_MSG_HANDLING_INTERVAL或者msg_handling_interval(unsigned)函數控制,單位爲毫秒 。延時還有可能會造成接收緩存滿(限速達到的正常的結果),ascs將暫停數據接收並延遲一段時間再恢復,延時通過宏ASCS_MSG_RESUMING_INTERVAL或者msg_resuming_interval(unsigned)函數控制,單位爲毫秒;

4. 如果創建了單獨的工作線程處理業務,可以把業務挪回到service線程裏面處理,這樣你的工作線程就不用了,限速的同時減少了資源(線程)佔用。

上一篇:ascs 簡明開發教程(10)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章