我需要使用UDP和TCP连接将Unity3D客户端连接到Photon Server。可能吗?我在哪里可以阅读它? 附:我想使用TCP发送大量数据。
答案 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对等体在一个客户端中查找播放器信息和发送数据