0

我需要使用 UDP 和 TCP 连接将 Unity3D 客户端连接到 Photon Server。可能吗?我在哪里可以读到它?PS 我想使用 TCP 发送大量数据。

4

3 回答 3

0

光子服务器句柄连接对象称为 Peerbase。每个对等点是每个客户端连接。在客户端对等连接中,您只选择协议是 UDP 或 TCP。解决方案是创建两个对等点,一个是 UDP,一个是 TCP,但很难在一个客户端中处理 UDP 和 TCP 对等点以查找播放器信息并发送数据

于 2015-01-18T19:10:13.883 回答
0

简单的回答:不。光子服务器不能有超过一种类型的连接。但是,根据您对“服务器”的定义,有一种方法可以做到这一点。作为此解释的基础,让我们将运行在机器上的对象实例称为服务器。服务器正在运行的机器,我们称之为机器。您可以在一台机器上运行多个服务器,它们可以有不同类型的连接。例如,您可以让统一客户端使用 UDP 连接连接到物理服务器,并使用 TCP 连接将客户端连接到您需要的任何其他东西。

于 2014-11-25T18:07:53.747 回答
0

Photon 服务器同时支持多种协议。如果您下载了服务器 sdk,请查找 PhotonServer.config:

它包含这样的条目

<UDPListeners>
    <UDPListener
        IPAddress="0.0.0.0"
        Port="5055">
    </UDPListener>
</UDPListeners>

<TCPListeners>
    <TCPListener
        IPAddress="0.0.0.0"
        Port="4530"
        PolicyFile="Policy\assets\socket-policy.xml"
        InactivityTimeout="10000"
        >
    </TCPListener>
</TCPListeners>

无论您选择什么协议,您的客户端都可以通过 udp 或 tcp 连接并相互交互。

有关完整的配置选项,您可以在此处查看:http: //doc.exitgames.com/en/onpremise/current/reference/server-config-settings

当客户端连接时,您可以在服务器端应用程序中查询客户端如何连接,如下所示:

public class YourApplication : ApplicationBase
{

    if (initRequest.LocalPort == 5055)
    {
    //
    }

    if (initRequest.PhotonPeer.GetListenerType() == ListenerType.TCPListener)
    {
    //
}

注意:配置中的 UDPListener 在代码中表示为 ListenerType.ENetListener。

您可以在下载的 {sdk}\doc\Photon.SocketServer.chm 或在线http://doc-api.exitgames.com/en/onpremise/current/server/doc/annotated.html中找到服务器 sdk 文档

于 2015-01-13T11:52:33.960 回答