Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TCP SocketのNoDelayを有効に #78

Merged
merged 1 commit into from
Dec 28, 2023
Merged

TCP SocketのNoDelayを有効に #78

merged 1 commit into from
Dec 28, 2023

Conversation

makiuchi-d
Copy link
Member

@makiuchi-d makiuchi-d commented Dec 28, 2023

System.Net.WebSocketsではTCP_NODELAYがデフォルトfalseのままになっているため、
条件によっては余計なレイテンシが発生していました。

手元のAndroidでの計測ではNoDelayを有効にしてもWifi接続では差がありませんでしたが、
携帯回線のときにオレゴンのサーバとの通信で平均約310msから230msに有意に改善しました。

iPhoneでも同じような効果あり、元々遅い回線ほど顕著に改善がみられるようです。

WSNet2が対象としているゲームではパケット数の節約よりもレイテンシを抑えるほうが優先すべきなので、
NoDelay=true固定としたいです。
また、ClientWebSocketクラスから内部のSocketには普通にアクセすることができないので、
リフレクションを使っています。

@makiuchi-d makiuchi-d requested a review from inada-s December 28, 2023 07:21
@inada-s inada-s merged commit 630fdc2 into main Dec 28, 2023
1 check passed
@makiuchi-d makiuchi-d deleted the unity-tcp-nodelay branch December 28, 2023 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants