patch_jack
一句话:你在本机开个端口等人连;外面的交换程序按自己的配置主动连上来。连上之后怎么转发、走哪条线,都由交换程序决定,本库帮你处理「监听、收发、编解码」这些脏活。
适合你吗
- 你的进程只想在本机被动监听,不想写「主动去连中央」的客户端。
- 可能有多路交换程序(或多实例)要同时连到同一个业务进程。
- 你想直接发 Python 对象(字典、数据类、带校验的模型),不想手搓二进制协议。
三条里命中任意一条,就值得往下看。
常用词对照
| 文档里常说 | 你可以理解成 |
|---|---|
| 监听地址 | 你绑定的 IP:端口,一般要抄到交换程序的配置里 |
| 发一条 | 发给当前所有已连上的交换程序,内容同一份 |
设计特性
你只管开端口,谁来连由交换程序决定
- 你在代码里指定本机要绑的 主机 和 端口(端口也可以写
0,让系统随便挑一个空的)。 - 交换程序读自己的表,主动连你这个地址。
- 你不用在业务里记「中央在哪」——对方会来找你。
好几台交换程序可以同时连你
- 不会因为「已经有一台连上了」就把后来的拒掉。
- 每台连接单独维护;发数据时可以一起通知当前所有连接。
发一次,所有连着的人都收到同一份
你发一条业务消息时:
- 内容会原样发给当前所有连接。
- 大家拿到的是同一份字节和同一个序号,方便各台交换程序各自做路由、对账。
你平时还是写 Python 对象,不用自己拼二进制
| 你手里是 | 库会帮你 |
|---|---|
字典、Mapping |
按约定压成线上字节 |
| 带校验的模型、数据类 | 同样压成线上字节 |
| 收进来的字节 | 解回 Python,再进你的回调 |
回调可以写类型,对不上就不瞎调
- 处理函数第一个参数可以写类型注解。
- 对得上的才调用;对不上会打日志,不会悄悄把错数据塞进你的函数。
想打日志可以挂几个小钩子
适合记日志、做调试的同步回调包括(名字不必背,知道「有这回事」即可):
- 监听起来了 / 有人连上或断开
- 收到对端转过来的数据 / 发不出去
- 对面报错 / 收到「已收到」的确认
钩子别太耗时;重活请自己
create_task或丢线程池。
想看得顺眼可以装彩色日志(不装也行)
- 装了常见彩色终端库:事件可以打成一行、带颜色。
- 没装:退回标准
logging,不会因为少依赖就崩。
端口写 0 也行,起来后再问「我实际监听的是哪」
端口写 0 → 启动完成 → 取 listen_address 字符串
→ 复制到交换程序配置里的 address
本机「全零监听」时,也会给你一个适合写进本机配置的地址形式(含 IPv6 时的括号习惯)。
命令行跑着时,Ctrl+C 能正常收尾
库带一个「等到用户想退出再继续」的辅助协程,适合示例和小脚本:收到中断或退出意图后,可以统一关掉监听和连接,不至于一团糟。
Metadata
Release files for python-library-patch-jack 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| python_library_patch_jack-0.1.1.tar.gz | 16.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| python_library_patch_jack-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.5 kB
Release files / python_library_patch_jack-0.1.1.tar.gz
| Download URL | python_library_patch_jack-0.1.1.tar.gz |
|---|---|
| Size | 16.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf068be66b5d3a819d0f06ab11e79bc1871ccaeaa45983ffb59b2292029bace3
|
|
BLAKE2b-256 checksum How to use checksums |
b00a03d2c81e6c86deee2fc95ddad300794ddb3af9009aa6635d58b4a287fbd0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.6
|
Release files / python_library_patch_jack-0.1.1-py3-none-any.whl
| Download URL | python_library_patch_jack-0.1.1-py3-none-any.whl |
|---|---|
| Size | 20.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b011991a795ee684c6d7dd892517ab6bc46c3eb3cb6c23fd3da316e225b2100
|
|
BLAKE2b-256 checksum How to use checksums |
28bc6f4120769542d40beb4bfb5c2be000aaef39a68d00b1b2773d2c287e24b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.6
|
Security for python-library-patch-jack 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.