socket.d 2.4.10.5__tar.gz → 2.4.10.7__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/PKG-INFO +1 -1
  2. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/setup.py +1 -1
  3. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socket.d.egg-info/PKG-INFO +1 -1
  4. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socket.d.egg-info/SOURCES.txt +2 -2
  5. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/broker/BrokerListenerBase.py +5 -5
  6. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/cluster/ClusterClientSession.py +2 -2
  7. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/cluster/LoadBalancer.py +2 -2
  8. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/HandshakeDefault.py +4 -4
  9. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/IdGenerator.py +2 -2
  10. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/entity/FileEntity.py +0 -1
  11. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/fragment/FragmentAggregatorDefault.py +2 -2
  12. socket.d-2.4.10.7/socketd/transport/core/listener/EventListener.py +57 -0
  13. socket.d-2.4.10.5/socketd/transport/utils/AsyncUtil.py → socket.d-2.4.10.7/socketd/transport/utils/AsyncUtils.py +4 -4
  14. socket.d-2.4.10.5/socketd/transport/utils/StrUtil.py → socket.d-2.4.10.7/socketd/transport/utils/StrUtils.py +3 -3
  15. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_aio_tcp/TcpAioClientConnector.py +2 -2
  16. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/WsAioClientConnector.py +2 -2
  17. socket.d-2.4.10.5/socketd/transport/core/listener/EventListener.py +0 -57
  18. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/README.md +0 -0
  19. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/setup.cfg +0 -0
  20. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socket.d.egg-info/dependency_links.txt +0 -0
  21. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socket.d.egg-info/requires.txt +0 -0
  22. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socket.d.egg-info/top_level.txt +0 -0
  23. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socket.d.egg-info/zip-safe +0 -0
  24. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/SocketD.py +0 -0
  25. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/__init__.py +0 -0
  26. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/broker/BrokerFragmentHandler.py +0 -0
  27. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/broker/BrokerListener.py +0 -0
  28. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/broker/__init__.py +0 -0
  29. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/cluster/ClusterClient.py +0 -0
  30. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/cluster/__init__.py +0 -0
  31. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/exception/SocketDExecption.py +0 -0
  32. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/exception/__init__.py +0 -0
  33. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/__init__.py +0 -0
  34. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/Client.py +0 -0
  35. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientBase.py +0 -0
  36. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientChannel.py +0 -0
  37. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientConfig.py +0 -0
  38. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientConfigHandler.py +0 -0
  39. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientConnectHandler.py +0 -0
  40. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientConnector.py +0 -0
  41. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientConnectorBase.py +0 -0
  42. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientHandshakeResult.py +0 -0
  43. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientHeartbeatHandler.py +0 -0
  44. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientProvider.py +0 -0
  45. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/ClientSession.py +0 -0
  46. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/client/__init__.py +0 -0
  47. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Asserts.py +0 -0
  48. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Channel.py +0 -0
  49. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/ChannelAssistant.py +0 -0
  50. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/ChannelInternal.py +0 -0
  51. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/ChannelSupporter.py +0 -0
  52. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Codec.py +0 -0
  53. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Config.py +0 -0
  54. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Costants.py +0 -0
  55. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Entity.py +0 -0
  56. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/EntityMetas.py +0 -0
  57. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Flags.py +0 -0
  58. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/FragmentAggregator.py +0 -0
  59. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/FragmentHandler.py +0 -0
  60. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Frame.py +0 -0
  61. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Frames.py +0 -0
  62. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Listener.py +0 -0
  63. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Message.py +0 -0
  64. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Processor.py +0 -0
  65. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/Session.py +0 -0
  66. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/__init__.py +0 -0
  67. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/codec/Buffer.py +0 -0
  68. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/codec/ByteBufferCodecReader.py +0 -0
  69. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/codec/ByteBufferCodecWriter.py +0 -0
  70. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/codec/CodecDefault.py +0 -0
  71. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/codec/__init__.py +0 -0
  72. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/entity/EntityDefault.py +0 -0
  73. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/entity/MessageBuilder.py +0 -0
  74. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/entity/MessageDefault.py +0 -0
  75. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/entity/StringEntity.py +0 -0
  76. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/entity/__init__.py +0 -0
  77. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/fragment/FragmentHandlerBase.py +0 -0
  78. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/fragment/FragmentHandlerDefault.py +0 -0
  79. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/fragment/FragmentHolder.py +0 -0
  80. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/fragment/__init__.py +0 -0
  81. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/ChannelBase.py +0 -0
  82. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/ChannelDefault.py +0 -0
  83. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/ConfigBase.py +0 -0
  84. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/LogConfig.py +0 -0
  85. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/ProcessorDefault.py +0 -0
  86. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/SessionBase.py +0 -0
  87. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/SessionDefault.py +0 -0
  88. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/impl/__init__.py +0 -0
  89. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/listener/PathListener.py +0 -0
  90. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/listener/PathMapper.py +0 -0
  91. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/listener/PipelineListener.py +0 -0
  92. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/listener/SimpleListener.py +0 -0
  93. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/core/listener/__init__.py +0 -0
  94. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/server/Server.py +0 -0
  95. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/server/ServerBase.py +0 -0
  96. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/server/ServerConfig.py +0 -0
  97. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/server/ServerProvider.py +0 -0
  98. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/server/__init__.py +0 -0
  99. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/RequestStream.py +0 -0
  100. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/SendStream.py +0 -0
  101. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/Stream.py +0 -0
  102. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/StreamBase.py +0 -0
  103. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/StreamManger.py +0 -0
  104. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/StreamMangerDefault.py +0 -0
  105. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/SubscribeStream.py +0 -0
  106. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/stream/__init__.py +0 -0
  107. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/utils/CompletableFuture.py +0 -0
  108. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/utils/__init__.py +0 -0
  109. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/utils/async_api/AtomicRefer.py +0 -0
  110. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/utils/async_api/__init__.py +0 -0
  111. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/utils/sync_api/AtomicRefer.py +0 -0
  112. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd/transport/utils/sync_api/__init__.py +0 -0
  113. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_aio_tcp/TCPAIOServer.py +0 -0
  114. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_aio_tcp/TCPStreamIO.py +0 -0
  115. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_aio_tcp/TcpAIOChannelAssistant.py +0 -0
  116. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_aio_tcp/TcpAioClient.py +0 -0
  117. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_aio_tcp/TcpAioProvider.py +0 -0
  118. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_aio_tcp/__init__.py +0 -0
  119. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/WsAioChannelAssistant.py +0 -0
  120. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/WsAioClient.py +0 -0
  121. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/WsAioProvider.py +0 -0
  122. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/WsAioServer.py +0 -0
  123. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/__init__.py +0 -0
  124. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/impl/AIOConnect.py +0 -0
  125. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/impl/AIOServe.py +0 -0
  126. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/impl/AIOWebSocketClientImpl.py +0 -0
  127. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/impl/AIOWebSocketServerImpl.py +0 -0
  128. {socket.d-2.4.10.5 → socket.d-2.4.10.7}/socketd_websocket/impl/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: socket.d
3
- Version: 2.4.10.5
3
+ Version: 2.4.10.7
4
4
  Summary: @noear/socket.d python project
5
5
  Home-page: https://socketd.noear.org/
6
6
  Author: noear,bai
@@ -4,7 +4,7 @@ from setuptools import setup,find_packages
4
4
 
5
5
  setup(
6
6
  name='socket.d',
7
- version='2.4.10.5',
7
+ version='2.4.10.7',
8
8
  description='@noear/socket.d python project',
9
9
  author='noear,bai',
10
10
  url='https://socketd.noear.org/',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: socket.d
3
- Version: 2.4.10.5
3
+ Version: 2.4.10.7
4
4
  Summary: @noear/socket.d python project
5
5
  Home-page: https://socketd.noear.org/
6
6
  Author: noear,bai
@@ -97,9 +97,9 @@ socketd/transport/stream/StreamManger.py
97
97
  socketd/transport/stream/StreamMangerDefault.py
98
98
  socketd/transport/stream/SubscribeStream.py
99
99
  socketd/transport/stream/__init__.py
100
- socketd/transport/utils/AsyncUtil.py
100
+ socketd/transport/utils/AsyncUtils.py
101
101
  socketd/transport/utils/CompletableFuture.py
102
- socketd/transport/utils/StrUtil.py
102
+ socketd/transport/utils/StrUtils.py
103
103
  socketd/transport/utils/__init__.py
104
104
  socketd/transport/utils/async_api/AtomicRefer.py
105
105
  socketd/transport/utils/async_api/__init__.py
@@ -6,7 +6,7 @@ from socketd.transport.core.EntityMetas import EntityMetas
6
6
  from socketd.transport.core.Listener import Listener
7
7
  from socketd.transport.core.Message import Message
8
8
  from socketd.transport.core.Session import Session
9
- from socketd.transport.utils.StrUtil import StrUtil
9
+ from socketd.transport.utils.StrUtils import StrUtils
10
10
 
11
11
 
12
12
  # 经纪人监听器基类(实现玩家封闭管理)
@@ -41,7 +41,7 @@ class BrokerListenerBase(Listener, ABC):
41
41
 
42
42
  # 获取任意一个玩家会话
43
43
  def get_player_any(self, atName: str, requester: Session | None, message: Message | None) -> ClientSession | None:
44
- if StrUtil.is_empty(atName):
44
+ if StrUtils.is_empty(atName):
45
45
  return None
46
46
 
47
47
  if atName.endswith("!"):
@@ -51,7 +51,7 @@ class BrokerListenerBase(Listener, ABC):
51
51
  if message is not None:
52
52
  x_hash = message.meta(EntityMetas.META_X_Hash)
53
53
 
54
- if StrUtil.is_empty(x_hash):
54
+ if StrUtils.is_empty(x_hash):
55
55
  if requester is None:
56
56
  return LoadBalancer.get_any_by_poll(self.get_player_all(atName))
57
57
  else: # 使用请求者 ip 分流
@@ -63,7 +63,7 @@ class BrokerListenerBase(Listener, ABC):
63
63
 
64
64
  # 添加玩家会话
65
65
  def add_player(self, name: str, session: Session):
66
- if StrUtil.is_not_empty(name):
66
+ if StrUtils.is_not_empty(name):
67
67
  tmp: List[Session] = self.__playerSessions.get(name)
68
68
  if tmp is None:
69
69
  tmp = [session]
@@ -74,7 +74,7 @@ class BrokerListenerBase(Listener, ABC):
74
74
 
75
75
  # 移除玩家会话
76
76
  def remove_player(self, name: str, session: Session):
77
- if StrUtil.is_not_empty(name):
77
+ if StrUtils.is_not_empty(name):
78
78
  tmp: list[Session] = self.get_player_all(name)
79
79
  if tmp is not None:
80
80
  tmp.remove(session)
@@ -5,14 +5,14 @@ from socketd.transport.core import Entity
5
5
  from socketd.transport.stream.RequestStream import RequestStream
6
6
  from socketd.transport.stream.SendStream import SendStream
7
7
  from socketd.transport.stream.SubscribeStream import SubscribeStream
8
- from socketd.transport.utils.StrUtil import StrUtil
8
+ from socketd.transport.utils.StrUtils import StrUtils
9
9
 
10
10
 
11
11
  class ClusterClientSession(ClientSession):
12
12
 
13
13
  def __init__(self, _sessionSet):
14
14
  self.__sessionSet: list[ClientSession] = _sessionSet
15
- self.__sessionId = StrUtil.guid()
15
+ self.__sessionId = StrUtils.guid()
16
16
 
17
17
  def get_session_all(self) -> list[ClientSession]:
18
18
  return self.__sessionSet
@@ -2,7 +2,7 @@ from threading import RLock
2
2
  from typing import List
3
3
 
4
4
  from socketd.transport.client.ClientSession import ClientSession
5
- from socketd.transport.utils.StrUtil import StrUtil
5
+ from socketd.transport.utils.StrUtils import StrUtils
6
6
 
7
7
 
8
8
  class LoadBalancer:
@@ -29,7 +29,7 @@ class LoadBalancer:
29
29
  # 根据 hash 获取任意一个
30
30
  @staticmethod
31
31
  def get_any_by_hash(coll: List[ClientSession], diversion: str) -> ClientSession:
32
- return LoadBalancer.get_any(coll, StrUtil.hash_code(diversion))
32
+ return LoadBalancer.get_any(coll, StrUtils.hash_code(diversion))
33
33
 
34
34
  # 获取任意一个
35
35
  @staticmethod
@@ -3,7 +3,7 @@ from urllib.parse import urlparse, parse_qsl
3
3
 
4
4
  from socketd.transport.core.EntityMetas import EntityMetas
5
5
  from socketd.transport.core.Message import Message, MessageInternal
6
- from socketd.transport.utils.StrUtil import StrUtil
6
+ from socketd.transport.utils.StrUtils import StrUtils
7
7
 
8
8
 
9
9
  class Handshake:
@@ -33,7 +33,7 @@ class HandshakeInternal(Handshake):
33
33
  class HandshakeDefault(HandshakeInternal):
34
34
  def __init__(self, source: MessageInternal):
35
35
  linkUrl = source.data_as_string()
36
- if StrUtil.is_empty(linkUrl):
36
+ if StrUtils.is_empty(linkUrl):
37
37
  # 兼容旧版本(@deprecated 2.2)
38
38
  linkUrl = source.event()
39
39
 
@@ -44,7 +44,7 @@ class HandshakeDefault(HandshakeInternal):
44
44
  self._paramMap = self._parse_query_string(self._uri.query)
45
45
  self._outMetaMap:dict[str,str] = {}
46
46
 
47
- if StrUtil.is_empty(self._path):
47
+ if StrUtils.is_empty(self._path):
48
48
  self._path = "/" # tcp://1.1.1.1 无路径连接时,path 为空
49
49
 
50
50
  self._paramMap.update(source.meta_map())
@@ -84,7 +84,7 @@ class HandshakeDefault(HandshakeInternal):
84
84
  @staticmethod
85
85
  def _parse_query_string(query_string):
86
86
  params = {}
87
- if StrUtil.is_not_empty(query_string):
87
+ if StrUtils.is_not_empty(query_string):
88
88
  for name, value in parse_qsl(query_string):
89
89
  params[name] = value
90
90
  return params
@@ -1,9 +1,9 @@
1
1
  from typing import Callable
2
2
 
3
- from socketd.transport.utils.StrUtil import StrUtil
3
+ from socketd.transport.utils.StrUtils import StrUtils
4
4
 
5
5
  IdGenerator = Callable[[None], str]
6
6
 
7
7
 
8
8
  def GuidGenerator():
9
- return StrUtil.guid()
9
+ return StrUtils.guid()
@@ -1,4 +1,3 @@
1
- from io import BufferedReader, BytesIO
2
1
  from typing import BinaryIO
3
2
 
4
3
  from socketd.exception.SocketDExecption import SocketDCodecException
@@ -9,7 +9,7 @@ from socketd.exception.SocketDExecption import SocketDException
9
9
 
10
10
  from .FragmentHolder import FragmentHolder
11
11
  from ..entity.MessageBuilder import MessageBuilder
12
- from ...utils.StrUtil import StrUtil
12
+ from ...utils.StrUtils import StrUtils
13
13
 
14
14
 
15
15
  class FragmentAggregatorDefault(FragmentAggregator):
@@ -22,7 +22,7 @@ class FragmentAggregatorDefault(FragmentAggregator):
22
22
  self.__fragmentHolders: list[FragmentHolder] = []
23
23
 
24
24
  data_length: str = frame.meta(EntityMetas.META_DATA_LENGTH)
25
- if StrUtil.is_empty(data_length):
25
+ if StrUtils.is_empty(data_length):
26
26
  raise SocketDException(f"Missing {EntityMetas.META_DATA_LENGTH} meta, event= {frame.event()}")
27
27
  self.__data_length = int(data_length)
28
28
  self.__data_stream_size = 0
@@ -0,0 +1,57 @@
1
+ from typing import Callable, Union, Dict
2
+
3
+ from socketd.transport.core.Listener import Listener
4
+ from socketd.transport.core.Session import Session
5
+ from socketd.transport.core.Message import Message
6
+
7
+
8
+ class EventListener(Listener):
9
+ """
10
+ @author bai
11
+ @since 2.0
12
+ """
13
+
14
+ def __init__(self):
15
+ self._doOnOpenHandler: Union[Callable[[Session], None], None] = None
16
+ self._doOnMessageHandler: Union[Callable[[Session, Message], None], None] = None
17
+ self._doOnCloseHandler: Union[Callable[[Session], None], None] = None
18
+ self._doOnErrorHandler: Union[Callable[[Session, Exception], None], None] = None
19
+ self._eventRouteSelector: Union[Dict[str, Callable[[Session, Message], None]], None] = None
20
+
21
+ def do_on_open(self, _on_open_handler: Callable[[Session, Message], None]) -> 'EventListener':
22
+ self._doOnOpenHandler = _on_open_handler
23
+ return self
24
+
25
+ def do_on_message(self, _on_message_handler: Callable[[Session], None]) -> 'EventListener':
26
+ self._doOnMessageHandler = _on_message_handler
27
+ return self
28
+
29
+ def do_on_close(self, _on_close_handler: Callable[[Session, Exception], None]) -> 'EventListener':
30
+ self._doOnCloseHandler = _on_close_handler
31
+ return self
32
+
33
+ def do_on_error_handler(self, _on_error_handler: Callable[[Session, Exception], None]) -> 'EventListener':
34
+ self._doOnErrorHandler = _on_error_handler
35
+ return self
36
+
37
+ def do_on(self, event: str, handler: Callable[[Session, Message], None]):
38
+ self._eventRouteSelector[event] = handler
39
+
40
+ async def on_open(self, session: Session):
41
+ if self._doOnOpenHandler:
42
+ self._doOnOpenHandler(session)
43
+
44
+ async def on_message(self, session: Session, message: Message):
45
+ if self._doOnMessageHandler:
46
+ self._doOnMessageHandler(session, message)
47
+
48
+ if message_handler := self._eventRouteSelector.get(message.event()):
49
+ message_handler(session, message)
50
+
51
+ def on_close(self, session: Session):
52
+ if self._doOnCloseHandler:
53
+ self._doOnCloseHandler(session)
54
+
55
+ def on_error(self, session: Session, error: Exception):
56
+ if self._doOnErrorHandler:
57
+ self._doOnErrorHandler(session, error)
@@ -8,7 +8,7 @@ if sys.platform == "win32":
8
8
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
9
9
 
10
10
 
11
- class AsyncUtil(object):
11
+ class AsyncUtils(object):
12
12
 
13
13
  @staticmethod
14
14
  def thread_handler(_loop: asyncio.AbstractEventLoop, fn: asyncio.Task):
@@ -47,7 +47,7 @@ class AsyncUtil(object):
47
47
 
48
48
  try:
49
49
  future.add_done_callback(
50
- lambda f: AsyncUtil.stop(_loop))
50
+ lambda f: AsyncUtils.stop(_loop))
51
51
  _loop.run_forever()
52
52
  finally:
53
53
  try:
@@ -81,10 +81,10 @@ class AsyncUtil(object):
81
81
  loop.stop()
82
82
 
83
83
  if thread:
84
- t = Thread(target=AsyncUtil.thread_handler, args=(loop, loop.create_task(_run())))
84
+ t = Thread(target=AsyncUtils.thread_handler, args=(loop, loop.create_task(_run())))
85
85
  t.start()
86
86
  elif pool:
87
- pool.submit(lambda x: AsyncUtil.thread_handler(*x), (loop, loop.create_task(_run())))
87
+ pool.submit(lambda x: AsyncUtils.thread_handler(*x), (loop, loop.create_task(_run())))
88
88
  return loop
89
89
 
90
90
  @staticmethod
@@ -1,7 +1,7 @@
1
1
  import uuid
2
2
 
3
3
 
4
- class StrUtil(object):
4
+ class StrUtils(object):
5
5
  @staticmethod
6
6
  def guid() -> str:
7
7
  return str(uuid.uuid4()).replace("-", "")
@@ -12,12 +12,12 @@ class StrUtil(object):
12
12
 
13
13
  @staticmethod
14
14
  def is_not_empty(txt: str) -> bool:
15
- return not StrUtil.is_empty(txt)
15
+ return not StrUtils.is_empty(txt)
16
16
 
17
17
  @staticmethod
18
18
  def hash_code(txt: str) -> int:
19
19
  hashCode = 0
20
- if StrUtil.is_empty(txt):
20
+ if StrUtils.is_empty(txt):
21
21
  return hashCode
22
22
  for char in txt:
23
23
  hashCode = (hashCode * 31 + ord(char)) & 0xffffffff # unsigned
@@ -11,7 +11,7 @@ from socketd.transport.core.Flags import Flags
11
11
  from socketd.transport.core.Frame import Frame
12
12
  from socketd.transport.core.impl.ChannelDefault import ChannelDefault
13
13
  from socketd.transport.core.impl.LogConfig import log
14
- from socketd.transport.utils.AsyncUtil import AsyncUtil
14
+ from socketd.transport.utils.AsyncUtils import AsyncUtils
15
15
  from socketd.transport.utils.CompletableFuture import CompletableFuture
16
16
 
17
17
  from socketd_aio_tcp.TCPStreamIO import TCPStreamIO
@@ -41,7 +41,7 @@ class TcpAioClientConnector(ClientConnectorBase):
41
41
  _port = int(_port.split("/")[0])
42
42
  if self.__top is None:
43
43
  self._loop = asyncio.new_event_loop()
44
- self.__top = AsyncUtil.run_forever(self._loop, daemon=True)
44
+ self.__top = AsyncUtils.run_forever(self._loop, daemon=True)
45
45
  try:
46
46
 
47
47
  reader = StreamReader(limit=self.get_config().get_read_buffer_size(), loop=loop)
@@ -10,7 +10,7 @@ from socketd.transport.core.Channel import Channel
10
10
  from socketd.transport.core.Costants import Constants
11
11
  from socketd.transport.core.impl.LogConfig import log, logger
12
12
  from socketd.transport.client.ClientConnectorBase import ClientConnectorBase
13
- from socketd.transport.utils.AsyncUtil import AsyncUtil
13
+ from socketd.transport.utils.AsyncUtils import AsyncUtils
14
14
  from socketd_websocket.impl.AIOConnect import AIOConnect
15
15
  from socketd_websocket.impl.AIOWebSocketClientImpl import AIOWebSocketClientImpl
16
16
 
@@ -35,7 +35,7 @@ class WsAioClientConnector(ClientConnectorBase):
35
35
  ws_url = ws_url.replace("ws", "wss")
36
36
 
37
37
  self._loop = asyncio.new_event_loop()
38
- self._top = AsyncUtil.run_forever(self._loop, daemon=True)
38
+ self._top = AsyncUtils.run_forever(self._loop, daemon=True)
39
39
 
40
40
  try:
41
41
  self.__con: AIOConnect = AIOConnect(uri=ws_url,
@@ -1,57 +0,0 @@
1
- from typing import Callable, Union, Dict
2
-
3
- from socketd.transport.core.Listener import Listener
4
- from socketd.transport.core.Session import Session
5
- from socketd.transport.core.Message import Message
6
-
7
-
8
- class EventListener(Listener):
9
- """
10
- @author bai
11
- @since 2.0
12
- """
13
-
14
- def __init__(self):
15
- self._do_on_open_handler: Union[Callable[[Session], None], None] = None
16
- self._do_on_message_handler: Union[Callable[[Session, Message], None], None] = None
17
- self._do_on_close_handler: Union[Callable[[Session], None], None] = None
18
- self._do_on_error_handler: Union[Callable[[Session, Exception], None], None] = None
19
- self._do_on_message_routing: Union[Dict[str, Callable[[Session, Message], None]], None] = None
20
-
21
- def do_on_open_handler(self, _on_open_handler: Callable[[Session, Message], None]) -> 'EventListener':
22
- self._do_on_open_handler = _on_open_handler
23
- return self
24
-
25
- def do_on_message_handler(self, _on_message_handler: Callable[[Session], None]) -> 'EventListener':
26
- self._do_on_message_handler = _on_message_handler
27
- return self
28
-
29
- def do_on_close_handler(self, _on_close_handler: Callable[[Session, Exception], None]) -> 'EventListener':
30
- self._do_on_close_handler = _on_close_handler
31
- return self
32
-
33
- def do_on_error_handler(self, _on_error_handler: Callable[[Session, Exception], None]) -> 'EventListener':
34
- self._do_on_error_handler = _on_error_handler
35
- return self
36
-
37
- def do_on(self, event: str, handler: Callable[[Session, Message], None]):
38
- self._do_on_message_routing[event] = handler
39
-
40
- async def on_open(self, session: Session):
41
- if self._do_on_open_handler:
42
- self._do_on_open_handler(session)
43
-
44
- async def on_message(self, session: Session, message: Message):
45
- if self._do_on_message_handler:
46
- self._do_on_message_handler(session, message)
47
-
48
- if message_handler := self._do_on_message_routing.get(message.event()):
49
- message_handler(session, message)
50
-
51
- def on_close(self, session: Session):
52
- if self._do_on_close_handler:
53
- self._do_on_close_handler(session)
54
-
55
- def on_error(self, session: Session, error: Exception):
56
- if self._do_on_error_handler:
57
- self._do_on_error_handler(session, error)
File without changes
File without changes