Comments (8)
延伸思路:
我们也许可以提供多种模式来完成自发现
- 持续广播模式, 即现有广播模式
- 介绍人模式, 即 @StardustSeemsInk 在 #217 提到的方式
- 村口广播模式, 即主控持续广播本机消息, 加入组网的设备不广播, 新设备自行加入主控组网
from kitx.
于 2023.5.27 更新 (From QQ Group)
可用的详细思路:
介绍人找朋友模式 (主控为介绍人)
- 请求阶段
- 连续发送若干个广播包请求主机, 观察是否有主控回应
- 连接阶段
- 主控回应了从控的请求 (发送 ip 地址等信息) , 从控连接
- 建立阶段
- 没有主控回应, 自己建立主控
- 等待阶段
- 观察广播包是否有新的自组网请求
此模式具体的好处为:
- 仅在从控自组网时才会有网络请求的产生
- ... 待补充
from kitx.
一般的内网,设备很少变化,所以可以整个上一次的连接历史,提高连接速度(这点特别适合虚拟机-实体机组网)
启动时阅读连接历史,尝试连接这些设备。连接错误或连接过程不要报出来
这个功能可以设置开启或关闭供用户选择
from kitx.
可用的详细思路: 介绍人模式 (主控为介绍人)
请求阶段
- 连续发送若干个广播包请求主机, 观察是否有主控回应
连接阶段
- 主控回应了从控的请求 (发送 ip 地址等信息) , 从控连接
建立阶段
没有主控回应, 自己建立主控
等待阶段
- 观察广播包是否有新的自组网请求
此模式具体的好处为:
- 仅在从控自组网时才会有网络请求的产生
- ... 待补充
一般的内网,设备很少变化,所以可以整个上一次的连接历史,提高连接速度(这点特别适合虚拟机-实体机组网) 启动时阅读连接历史,尝试连接这些设备。连接错误或连接过程不要报出来 这个功能可以设置开启或关闭供用户选择
好主意
from kitx.
Tracked by #223 .
from kitx.
Tracked by #224 .
from kitx.
延伸思路: 我们也许可以提供多种模式来完成自发现
- 持续广播模式, 即现有广播模式
- 介绍人模式, 即 @StardustSeemsInk 在 [Rules] On the optimization of self-discovery ad hoc networks #217 提到的方式
- 村口广播模式, 即主控持续广播本机消息, 加入组网的设备不广播, 新设备自行加入主控组网
我更加倾向于重写成 3 的模式
即: 启动时监听 udp 广播 5s, 若有收到主控的广播消息直接加入主控网络 (比较建立时间, 加入建立时间最早的主控网络), 若超出此段时间仍未收到主控广播消息, 则认为本机为局域网络第一个设备, 建立主控网络并开始广播主控广播消息, 在此期间, 持续监听是否有其他设备的主控广播消息, 若存在则比较主控网络建立时间, 后建立主控网络的设备自行关闭主控网络.
from kitx.
另外, #202 可以合并到此 issue, 有关同步设备时间的问题
from kitx.
Related Issues (20)
- [Mobile] UI Improvements HOT 3
- [Mobile] 使移动端发送 UDP 设备报文的功能成为系统服务, 以便保持设备发现能力 HOT 2
- [Mobile] 移动端设备发现页始终将本机置顶
- [Mobile] 移动端设备发现模块存在错误 HOT 2
- [Mobile] One or more plugins require a higher Android SDK version in Mobile Client HOT 1
- [Mobile] 移动端版本号与桌面端同步 HOT 4
- [Website] Difficulty obtaining external chain resources of the website HOT 3
- [Dashboard] 在 Windows 10.0.19042 中, 无法运行 KitX Release v3.23.04.6488 HOT 6
- [Dashboard] Refactoring requests related to web services HOT 4
- [Dashboard] Supported log levels list in settings page is empty HOT 1
- 可不可以在 KitX Release 中编译 KitX 全部内容而非 KitX Dashboard HOT 2
- [Mobile] Realize the same LAN ad hoc networking function as the desktop on the mobile terminal HOT 1
- [Loader] KitX Loader for general C# HOT 2
- [Dashboard] TcpServer high CPU usage HOT 1
- [Dashboard] Realize custom font manager to override default one in avalonia HOT 3
- [Dashboard] Arch Linux 上无法运行 HOT 5
- [Installer] Rewrite cross-platform installer through other ui framework HOT 4
- [Roadmap] KitX Installer | 安装包路线图 HOT 2
- [Mobile] Add a sorting strategy to the device list HOT 2
- [Installer] 7z assets init script can not run on other platform HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kitx.