Photon Server是否支持多种协议连接?

时间:2014-11-25 16:30:15

标签: unity3d photon

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

3 个答案:

答案 0 :(得分:0)

简单回答:不可以。光子服务器的连接类型不能超过1种。 但是,根据您对“服务器”的定义,有一种方法可以执行此操作。在此解释的基础上,让我们调用服务器上运行在计算机上的对象实例。服务器运行的机器,我们将调用机器。您可以从一台计算机上运行多个服务器,它们可以具有不同类型的连接。例如,您可以使用UDP连接将unity客户端连接到物理服务器,并使用TCP连接将客户端连接到您需要的任何其他内容。

答案 1 :(得分: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文档。

答案 2 :(得分:0)

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