All Projects → ishland → AsyncKeepAlive

ishland / AsyncKeepAlive

Licence: MIT license
AsyncKeepAlive is a plugin that keep the players' connections alive

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to AsyncKeepAlive

bascomtask
Lightweight parallel Java tasks
Stars: ✭ 49 (+276.92%)
Mutual labels:  thread
ComposableAsync
Create, compose and inject asynchronous behaviors in .Net Framework and .Net Core.
Stars: ✭ 28 (+115.38%)
Mutual labels:  thread
thread-priority
A simple thread schedule and priority library for rust
Stars: ✭ 48 (+269.23%)
Mutual labels:  thread
TPS-SLG-GAME
Unity制作的多人在线的第三人称策略类射击游戏 ,服务端实现怪物寻路,服务端由python 实现。 (服务端没有用任何python第三方库)
Stars: ✭ 150 (+1053.85%)
Mutual labels:  tps
libopenTIDAL
TIDAL API interface written in ANSI C
Stars: ✭ 17 (+30.77%)
Mutual labels:  thread
betterdocs
📚 Web version of https://github.com/khusnetdinov/ruby.fundamental repo - Fundamental programming with ruby examples and references. It covers threads, SOLID principles, design patterns, data structures, algorithms. Books for reading.
Stars: ✭ 25 (+92.31%)
Mutual labels:  thread
YACLib
Yet Another Concurrency Library
Stars: ✭ 193 (+1384.62%)
Mutual labels:  thread
mcfgthread
Cornerstone of the MOST efficient std::thread on Windows for mingw-w64
Stars: ✭ 143 (+1000%)
Mutual labels:  thread
java-tutorial
Java 实践代码,多线程,数据结构,算法,设计模式,Spring,RabbitMQ ,RocketMQ
Stars: ✭ 15 (+15.38%)
Mutual labels:  thread
tape-recorder
BSV Hackathon: Use Tape Recorder to record any computation onto Bitcoin Script using a Wang B machine written in Forth
Stars: ✭ 22 (+69.23%)
Mutual labels:  thread
Probe
Probe is a web GUI application with for Hyperledger Fabric maintainer, user, research to find the best block config logic for specific chain-code.
Stars: ✭ 29 (+123.08%)
Mutual labels:  tps
Java-Interview-Programs
Core Java Projects with complete source code
Stars: ✭ 48 (+269.23%)
Mutual labels:  thread
RxSchedulerSuppress
RxSchedulerSuppress 是用于抑制 RxJava 在同一个线程池内重复调度的工具
Stars: ✭ 30 (+130.77%)
Mutual labels:  thread
gdb-automatic-deadlock-detector
Script adds new command to GDB which allows automatically detect C/C++ thread locking and deadlocks in GDB debugger
Stars: ✭ 60 (+361.54%)
Mutual labels:  thread
fix-linux-mouse
Hints how to fix USB mouse issues on Linux
Stars: ✭ 36 (+176.92%)
Mutual labels:  disconnects
hpc
Learning and practice of high performance computing (CUDA, Vulkan, OpenCL, OpenMP, TBB, SSE/AVX, NEON, MPI, coroutines, etc. )
Stars: ✭ 39 (+200%)
Mutual labels:  thread
cpp-thread-study
C++ 线程库示例及教程
Stars: ✭ 38 (+192.31%)
Mutual labels:  thread
matrix multiplication
Parallel Matrix Multiplication Using OpenMP, Phtreads, and MPI
Stars: ✭ 41 (+215.38%)
Mutual labels:  thread
spinach
Modern Redis task queue for Python 3
Stars: ✭ 46 (+253.85%)
Mutual labels:  thread
Adun
A way to backdoor every process
Stars: ✭ 58 (+346.15%)
Mutual labels:  thread

The future of AsyncKeepAlive

In 1.16, Paper has made a lot of changes to networking that caused this plugin is NOT working properly. And there is NO way to make it work properly again. Fixing these things isn't easy or fun and takes a lot of time and energy that I don't have. I have no plans to continue updating AsyncKeepAlive and no alternatives is present. AsyncKeepAlive will still works just fine from 1.7 to 1.11. I have no plans to continue fixing inconsistencies on 1.12+.

AsyncKeepAlive

Build Status

This is a plugin that reduce the probability of disconnects

Warning: This plugin is currently not stable. I didn't update it due to lack to time.

Compatibility

  • API Version: 1.14-R0.1-SNAPSHOT
  • Dependencies: ProtocolLib
  • Requirements: Java 7 or above

How it works

  • Open an asynchronous thread timing (every 4 seconds) to send a KeepAlive (heartbeat packet) to the online players, reducing the probability of players disconnect due to low TPS, instant stuck and network packet loss. This plugin can only reduce the probability of disconnects and cannot increase the network transmission speed.
  • Open an asynchronous thread receive all KeepAlive (heartbeat packet) and filter the KeepAlives. Cancel the packet whick is sent by the plugin and let the others go. This is required on 1.12+, and a bug fix on older versions (The latency is displayed as invaild).

Some Information

  • The server itself will send a KeepAlive to all clients every 20 seconds. The client must reply to the heartbeat packet within 30 seconds. Otherwise, the server is offline and the connection is displayed as dropped. If the server suddenly gets stuck, it will inevitably cause some players to disconnect. If It stucks more than 20 seconds, all the players will be disconnected. Because the heartbeat packet is sent in the main thread in a synchronous manner, the low TPS will cause the packet to be sent. Speed and response speed are slowing down. This plugin opens up a new asynchronous thread (not affected by TPS) and sends a heartbeat packet every 4 seconds, thus reducing the probability of players falling offline due to poor network conditions and low server TPS and instant card conditions.

This plugin uses bStats.

bStats sends the following data:

  • Your server's randomly generated UUID
  • The amount of players on your server
  • The online mode of your server
  • The bukkit version of your server (It seems like it doesn't send this)
  • The java version of your system (e.g. Java 8)
  • The name of your OS (e.g. Windows)
  • The version of your OS
  • The architecture of your OS (e.g. amd64)
  • The system cores of your OS (e.g. 8)
  • bStats-supported plugins
  • Plugin version of bStats-supported plugins

bStats page: https://bstats.org/plugin/bukkit/AsyncKeepAlive

Tested versions

  • Spigot 1.14
  • Paperspigot 1.13.2 with ProtocolLib 4.4.0
  • Paperspigot 1.12.2 with ProtocolLib 4.4.0
  • Paperspigot 1.11.2 with ProtocolLib 4.4.0
  • Bukkit 1.7.10 with ProtocolLib unknown by Chinese MCBBS 夜夜夜、

Known issues

Nope

Development builds:

https://ci.ishland.com/job/AsyncKeepAlive/ (Take the first jar)

Sorry for my poor English, I am Chinese.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].