feat(websocket): 更新WebSocket连接地址并添加认证令牌

- 将连接地址从 wss://192.168.1.3/ws/ 更改为 ws://192.168.1.41:9516/ws/- 添加了用于身份验证的 Bearer Token
- 启用 WebSocket 调试追踪功能
main
wsy182 2025-10-15 11:15:58 +08:00
parent 945ac31725
commit 5fa68924e3
1 changed files with 66 additions and 0 deletions

66
snowflake_generator.py Normal file
View File

@ -0,0 +1,66 @@
import time
import threading
EPOCH_JAVA_COMMON = 1288834974657
class Snowflake:
def __init__(self, datacenter_id: int = 0, worker_id: int = 0, epoch: int = 1480166465631):
# 机器和数据中心配置
self.worker_id_bits = 5
self.datacenter_id_bits = 5
self.sequence_bits = 12
self.max_worker_id = -1 ^ (-1 << self.worker_id_bits)
self.max_datacenter_id = -1 ^ (-1 << self.datacenter_id_bits)
if worker_id > self.max_worker_id or worker_id < 0:
raise ValueError(f"worker_id 超出范围 (0 ~ {self.max_worker_id})")
if datacenter_id > self.max_datacenter_id or datacenter_id < 0:
raise ValueError(f"datacenter_id 超出范围 (0 ~ {self.max_datacenter_id})")
self.worker_id = worker_id
self.datacenter_id = datacenter_id
self.epoch = epoch
self.sequence = 0
self.last_timestamp = -1
self.worker_id_shift = self.sequence_bits
self.datacenter_id_shift = self.sequence_bits + self.worker_id_bits
self.timestamp_left_shift = self.sequence_bits + self.worker_id_bits + self.datacenter_id_bits
self.sequence_mask = -1 ^ (-1 << self.sequence_bits)
self.lock = threading.Lock()
def _timestamp(self):
return int(time.time() * 1000)
def _til_next_millis(self, last_timestamp):
timestamp = self._timestamp()
while timestamp <= last_timestamp:
timestamp = self._timestamp()
return timestamp
def next_id(self) -> int:
with self.lock:
timestamp = self._timestamp()
if timestamp < self.last_timestamp:
raise Exception("时钟回拨拒绝生成ID")
if timestamp == self.last_timestamp:
self.sequence = (self.sequence + 1) & self.sequence_mask
if self.sequence == 0:
timestamp = self._til_next_millis(self.last_timestamp)
else:
self.sequence = 0
self.last_timestamp = timestamp
return ((timestamp - self.epoch) << self.timestamp_left_shift) | \
(self.datacenter_id << self.datacenter_id_shift) | \
(self.worker_id << self.worker_id_shift) | \
self.sequence
if __name__ == "__main__":
snowflake = Snowflake(datacenter_id=0, worker_id=0, epoch=EPOCH_JAVA_COMMON)
for _ in range(10):
print(str(snowflake.next_id()))