游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:554

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 79|回复: 0

[脚本] Unity 中使用 Websocket 连接不上 Photon 服务器是为什么

[复制链接]  [移动端链接]
5熟悉之中
626/1000
排名
4831
昨日变化
6

22

主题

92

帖子

626

积分

Rank: 5Rank: 5

UID
129620
好友
0
蛮牛币
944
威望
0
注册时间
2015-11-22
在线时间
234 小时
最后登录
2018-9-13
发表于 7 天前 | 显示全部楼层 |阅读模式
30蛮牛币
本帖最后由 greenmartian 于 2018-9-13 18:38 编辑

在Unity里用tcp可以连接Photon服务器,在VS里创建 C#项目用Websocket也能连上,只有在Unity里用websocket连不上,是为什么呢?

Unity客户端代码 Client1.cs 如下:

[C#] 纯文本查看 复制代码
using UnityEngine;
using ExitGames.Client.Photon;

public class Client1 : MonoBehaviour, IPhotonPeerListener
{

    private PhotonPeer peer;
    
    private bool connected;

    void Start()
    {
        DontDestroyOnLoad(this.gameObject);
        Application.runInBackground = true;
        
        peer = new PhotonPeer(this, ConnectionProtocol.WebSocket);
        bool result = peer.Connect("ws://127.0.0.1:4530/ChatServer/", "ChatServer");
        //bool result = peer.Connect("127.0.0.1:9999", "ChatServer");
        Debug.Log("连接结果 " + result);
    }

    void Update()
    {
        if (peer != null)
        {
            peer.Service();
        }
    }
    
    public void DebugReturn(DebugLevel level, string message)
    {
        Debug.Log(string.Format("{0}: {1}", level, message));
    }
    
    public void OnEvent(EventData eventData)
    {
        DebugReturn(DebugLevel.INFO, eventData.ToStringFull());
        if (eventData.Code == 1)
        {
            DebugReturn(DebugLevel.INFO, string.Format("Chat Message: {0}", eventData.Parameters[1]));
        }
    }
    
    public void OnOperationResponse(OperationResponse operationResponse)
    {
        DebugReturn(DebugLevel.INFO, operationResponse.ToStringFull());
    }
    
    public void OnStatusChanged(StatusCode statusCode)
    {
        DebugReturn(DebugLevel.INFO, "OnStatusChanged statusCode:" + statusCode);
        if (statusCode == StatusCode.Connect)
        {
            connected = true;
        }
        switch (statusCode)
        {
            case StatusCode.Connect:
                DebugReturn(DebugLevel.INFO, "Connected");
                connected = true;
                break;
            default:
                Debug.Log(statusCode.ToString());
                DebugReturn(DebugLevel.ERROR, statusCode.ToString());
                break;
        }
    }
}



配置文件 PhotonServer.config 如下:
[XML] 纯文本查看 复制代码
<?xml version="1.0"?>
<Configuration>
  <ChatServer 
          MaxMessageSize="512000"
        MaxQueuedDataPerPeer="512000"
        PerPeerMaxReliableDataInTransit="51200"
        PerPeerTransmitRateLimitKBSec="256"
        PerPeerTransmitRatePeriodMilliseconds="200"
        MinimumTimeout="5000"
        MaximumTimeout="30000"
          DisplayName="Chat Server">
        <TCPListeners>
                <TCPListener
                        IPAddress="0.0.0.0"
                        Port="9999"
                        PolicyFile="Policy\assets\socket-policy.xml"
                        InactivityTimeout="10000"
                        OverrideApplication="ChatServer"                                
                        >
                </TCPListener>
        </TCPListeners>
    <WebSocketListeners>
      <WebSocketListener
                IPAddress="0.0.0.0"
                Port="4530"
                DisableNagle="true"
                InactivityTimeout="10000"
                OverrideApplication="ChatServer">
      </WebSocketListener>
    </WebSocketListeners>
    <!-- Defines the Photon Runtime Assembly to use. -->
    <Runtime
    Assembly="PhotonHostRuntime, Culture=neutral"
    Type="PhotonHostRuntime.PhotonDomainManager"
    CLRVersion = "v4.0"                        
    UnhandledExceptionPolicy="Ignore">
    </Runtime>
    <!-- other elements -->
    <Applications Default="ChatServer">
      <Application
      Name="ChatServer"
      BaseDirectory="ChatServer"
      Assembly="ChatServer"
      Type="ChatServer"
      ForceAutoRestart="true"
      WatchFiles="dll;config"
      ExcludeFiles="log4net.config"
      >
      </Application>
      <!-- any other applications -->
    </Applications>
    <!-- other elements -->
  </ChatServer>
</Configuration>



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表