class_networkedmultiplayerpeer.rst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/NetworkedMultiplayerPeer.xml.
  6. .. _class_NetworkedMultiplayerPeer:
  7. NetworkedMultiplayerPeer
  8. ========================
  9. **Inherits:** :ref:`PacketPeer<class_PacketPeer>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  10. **Inherited By:** :ref:`MultiplayerPeerGDNative<class_MultiplayerPeerGDNative>`, :ref:`NetworkedMultiplayerCustom<class_NetworkedMultiplayerCustom>`, :ref:`NetworkedMultiplayerENet<class_NetworkedMultiplayerENet>`, :ref:`WebRTCMultiplayer<class_WebRTCMultiplayer>`, :ref:`WebSocketMultiplayerPeer<class_WebSocketMultiplayerPeer>`
  11. A high-level network interface to simplify multiplayer interactions.
  12. .. rst-class:: classref-introduction-group
  13. Description
  14. -----------
  15. Manages the connection to network peers. Assigns unique IDs to each client connected to the server. See also :ref:`MultiplayerAPI<class_MultiplayerAPI>`.
  16. \ **Note:** The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
  17. .. rst-class:: classref-introduction-group
  18. Tutorials
  19. ---------
  20. - :doc:`High-level multiplayer <../tutorials/networking/high_level_multiplayer>`
  21. - `WebRTC Signaling Demo <https://godotengine.org/asset-library/asset/537>`__
  22. .. rst-class:: classref-reftable-group
  23. Properties
  24. ----------
  25. .. table::
  26. :widths: auto
  27. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
  28. | :ref:`bool<class_bool>` | :ref:`refuse_new_connections<class_NetworkedMultiplayerPeer_property_refuse_new_connections>` | ``false`` |
  29. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
  30. | :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` | :ref:`transfer_mode<class_NetworkedMultiplayerPeer_property_transfer_mode>` | ``2`` |
  31. +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
  32. .. rst-class:: classref-reftable-group
  33. Methods
  34. -------
  35. .. table::
  36. :widths: auto
  37. +-------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>` | :ref:`get_connection_status<class_NetworkedMultiplayerPeer_method_get_connection_status>` **(** **)** |const| |
  39. +-------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`int<class_int>` | :ref:`get_packet_peer<class_NetworkedMultiplayerPeer_method_get_packet_peer>` **(** **)** |const| |
  41. +-------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`int<class_int>` | :ref:`get_unique_id<class_NetworkedMultiplayerPeer_method_get_unique_id>` **(** **)** |const| |
  43. +-------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+
  44. | void | :ref:`poll<class_NetworkedMultiplayerPeer_method_poll>` **(** **)** |
  45. +-------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+
  46. | void | :ref:`set_target_peer<class_NetworkedMultiplayerPeer_method_set_target_peer>` **(** :ref:`int<class_int>` id **)** |
  47. +-------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+
  48. .. rst-class:: classref-section-separator
  49. ----
  50. .. rst-class:: classref-descriptions-group
  51. Signals
  52. -------
  53. .. _class_NetworkedMultiplayerPeer_signal_connection_failed:
  54. .. rst-class:: classref-signal
  55. **connection_failed** **(** **)**
  56. Emitted when a connection attempt fails.
  57. .. rst-class:: classref-item-separator
  58. ----
  59. .. _class_NetworkedMultiplayerPeer_signal_connection_succeeded:
  60. .. rst-class:: classref-signal
  61. **connection_succeeded** **(** **)**
  62. Emitted when a connection attempt succeeds.
  63. .. rst-class:: classref-item-separator
  64. ----
  65. .. _class_NetworkedMultiplayerPeer_signal_peer_connected:
  66. .. rst-class:: classref-signal
  67. **peer_connected** **(** :ref:`int<class_int>` id **)**
  68. Emitted when a remote peer connects.
  69. .. rst-class:: classref-item-separator
  70. ----
  71. .. _class_NetworkedMultiplayerPeer_signal_peer_disconnected:
  72. .. rst-class:: classref-signal
  73. **peer_disconnected** **(** :ref:`int<class_int>` id **)**
  74. Emitted when a remote peer has disconnected.
  75. .. rst-class:: classref-item-separator
  76. ----
  77. .. _class_NetworkedMultiplayerPeer_signal_server_disconnected:
  78. .. rst-class:: classref-signal
  79. **server_disconnected** **(** **)**
  80. Emitted by clients when the server disconnects.
  81. .. rst-class:: classref-section-separator
  82. ----
  83. .. rst-class:: classref-descriptions-group
  84. Enumerations
  85. ------------
  86. .. _enum_NetworkedMultiplayerPeer_TransferMode:
  87. .. rst-class:: classref-enumeration
  88. enum **TransferMode**:
  89. .. _class_NetworkedMultiplayerPeer_constant_TRANSFER_MODE_UNRELIABLE:
  90. .. rst-class:: classref-enumeration-constant
  91. :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` **TRANSFER_MODE_UNRELIABLE** = ``0``
  92. Packets are not acknowledged, no resend attempts are made for lost packets. Packets may arrive in any order. Potentially faster than :ref:`TRANSFER_MODE_UNRELIABLE_ORDERED<class_NetworkedMultiplayerPeer_constant_TRANSFER_MODE_UNRELIABLE_ORDERED>`. Use for non-critical data, and always consider whether the order matters.
  93. .. _class_NetworkedMultiplayerPeer_constant_TRANSFER_MODE_UNRELIABLE_ORDERED:
  94. .. rst-class:: classref-enumeration-constant
  95. :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` **TRANSFER_MODE_UNRELIABLE_ORDERED** = ``1``
  96. Packets are not acknowledged, no resend attempts are made for lost packets. Packets are received in the order they were sent in. Potentially faster than :ref:`TRANSFER_MODE_RELIABLE<class_NetworkedMultiplayerPeer_constant_TRANSFER_MODE_RELIABLE>`. Use for non-critical data or data that would be outdated if received late due to resend attempt(s) anyway, for example movement and positional data.
  97. .. _class_NetworkedMultiplayerPeer_constant_TRANSFER_MODE_RELIABLE:
  98. .. rst-class:: classref-enumeration-constant
  99. :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` **TRANSFER_MODE_RELIABLE** = ``2``
  100. Packets must be received and resend attempts should be made until the packets are acknowledged. Packets must be received in the order they were sent in. Most reliable transfer mode, but potentially the slowest due to the overhead. Use for critical data that must be transmitted and arrive in order, for example an ability being triggered or a chat message. Consider carefully if the information really is critical, and use sparingly.
  101. .. rst-class:: classref-item-separator
  102. ----
  103. .. _enum_NetworkedMultiplayerPeer_ConnectionStatus:
  104. .. rst-class:: classref-enumeration
  105. enum **ConnectionStatus**:
  106. .. _class_NetworkedMultiplayerPeer_constant_CONNECTION_DISCONNECTED:
  107. .. rst-class:: classref-enumeration-constant
  108. :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>` **CONNECTION_DISCONNECTED** = ``0``
  109. The ongoing connection disconnected.
  110. .. _class_NetworkedMultiplayerPeer_constant_CONNECTION_CONNECTING:
  111. .. rst-class:: classref-enumeration-constant
  112. :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>` **CONNECTION_CONNECTING** = ``1``
  113. A connection attempt is ongoing.
  114. .. _class_NetworkedMultiplayerPeer_constant_CONNECTION_CONNECTED:
  115. .. rst-class:: classref-enumeration-constant
  116. :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>` **CONNECTION_CONNECTED** = ``2``
  117. The connection attempt succeeded.
  118. .. rst-class:: classref-section-separator
  119. ----
  120. .. rst-class:: classref-descriptions-group
  121. Constants
  122. ---------
  123. .. _class_NetworkedMultiplayerPeer_constant_TARGET_PEER_BROADCAST:
  124. .. rst-class:: classref-constant
  125. **TARGET_PEER_BROADCAST** = ``0``
  126. Packets are sent to the server and then redistributed to other peers.
  127. .. _class_NetworkedMultiplayerPeer_constant_TARGET_PEER_SERVER:
  128. .. rst-class:: classref-constant
  129. **TARGET_PEER_SERVER** = ``1``
  130. Packets are sent to the server alone.
  131. .. rst-class:: classref-section-separator
  132. ----
  133. .. rst-class:: classref-descriptions-group
  134. Property Descriptions
  135. ---------------------
  136. .. _class_NetworkedMultiplayerPeer_property_refuse_new_connections:
  137. .. rst-class:: classref-property
  138. :ref:`bool<class_bool>` **refuse_new_connections** = ``false``
  139. .. rst-class:: classref-property-setget
  140. - void **set_refuse_new_connections** **(** :ref:`bool<class_bool>` value **)**
  141. - :ref:`bool<class_bool>` **is_refusing_new_connections** **(** **)**
  142. If ``true``, this **NetworkedMultiplayerPeer** refuses new connections.
  143. .. rst-class:: classref-item-separator
  144. ----
  145. .. _class_NetworkedMultiplayerPeer_property_transfer_mode:
  146. .. rst-class:: classref-property
  147. :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` **transfer_mode** = ``2``
  148. .. rst-class:: classref-property-setget
  149. - void **set_transfer_mode** **(** :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` value **)**
  150. - :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>` **get_transfer_mode** **(** **)**
  151. The manner in which to send packets to the ``target_peer``. See :ref:`TransferMode<enum_NetworkedMultiplayerPeer_TransferMode>`.
  152. .. rst-class:: classref-section-separator
  153. ----
  154. .. rst-class:: classref-descriptions-group
  155. Method Descriptions
  156. -------------------
  157. .. _class_NetworkedMultiplayerPeer_method_get_connection_status:
  158. .. rst-class:: classref-method
  159. :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>` **get_connection_status** **(** **)** |const|
  160. Returns the current state of the connection. See :ref:`ConnectionStatus<enum_NetworkedMultiplayerPeer_ConnectionStatus>`.
  161. .. rst-class:: classref-item-separator
  162. ----
  163. .. _class_NetworkedMultiplayerPeer_method_get_packet_peer:
  164. .. rst-class:: classref-method
  165. :ref:`int<class_int>` **get_packet_peer** **(** **)** |const|
  166. Returns the ID of the **NetworkedMultiplayerPeer** who sent the most recent packet.
  167. .. rst-class:: classref-item-separator
  168. ----
  169. .. _class_NetworkedMultiplayerPeer_method_get_unique_id:
  170. .. rst-class:: classref-method
  171. :ref:`int<class_int>` **get_unique_id** **(** **)** |const|
  172. Returns the ID of this **NetworkedMultiplayerPeer**.
  173. .. rst-class:: classref-item-separator
  174. ----
  175. .. _class_NetworkedMultiplayerPeer_method_poll:
  176. .. rst-class:: classref-method
  177. void **poll** **(** **)**
  178. Waits up to 1 second to receive a new network event.
  179. .. rst-class:: classref-item-separator
  180. ----
  181. .. _class_NetworkedMultiplayerPeer_method_set_target_peer:
  182. .. rst-class:: classref-method
  183. void **set_target_peer** **(** :ref:`int<class_int>` id **)**
  184. Sets the peer to which packets will be sent.
  185. The ``id`` can be one of: :ref:`TARGET_PEER_BROADCAST<class_NetworkedMultiplayerPeer_constant_TARGET_PEER_BROADCAST>` to send to all connected peers, :ref:`TARGET_PEER_SERVER<class_NetworkedMultiplayerPeer_constant_TARGET_PEER_SERVER>` to send to the peer acting as server, a valid peer ID to send to that specific peer, a negative peer ID to send to all peers except that one. By default, the target peer is :ref:`TARGET_PEER_BROADCAST<class_NetworkedMultiplayerPeer_constant_TARGET_PEER_BROADCAST>`.
  186. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  187. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  188. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  189. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`