1.使用VS新建个项目ChatServer
2.给项目添加所需的lib引用(C:\Program Files\Photon Server\lib\)
PhotonHostRuntimeInterfaces.dll 主机运行时接口dll
ExitGames.Logging.Log4Net.dll 退出游戏时日志信息dll
log4net.dll 日志信息dll
Photon.SocketServer.dll 服务器套接字dll
ExitGamesLibs.dll 退出游戏相关lib的dll
3.创建ChatServer入口类继承 ApplicationBase并实现接口
ChatServer类
using Photon.SocketServer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ChatServer
{
//继承自ApplicationBase的类是server的入口程序
class ChatServer : ApplicationBase
{
//当有新的客户连接到这个server时被自动调用
protected override PeerBase CreatePeer(InitRequest initRequest)
{
//每次被调用就创建一个继承自PeerBase类的对象用于跟客户端通信
return new ChatPeer(initRequest.Protocol, initRequest.PhotonPeer);
}
//当server启动时被调用
protected override void Setup()
{
}
//当server停止时被调用
protected override void TearDown()
{
}
}
}
4.新建ChatPeer类继承ChatBase,并实现接口
ChatPeer 类
using Photon.SocketServer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PhotonHostRuntimeInterfaces;
namespace ChatServer
{
//与客户端通信的类
class ChatPeer : PeerBase
{
public ChatPeer(IRpcProtocol ircp,IPhotonPeer peer) : base(ircp,peer)
{
}
/// <summary>
/// 当客户端断开连接时被调用
/// </summary>
/// <param name="reasonCode">断开连接原因</param>
/// <param name="reasonDetail">具体描述文本</param>
protected override void OnDisconnect(DisconnectReason reasonCode, string reasonDetail)
{
}
/// <summary>
/// 当客户端发起请求时被调用
/// </summary>
/// <param name="operationRequest">客户端的操作请求</param>
/// <param name="sendParameters">发送的参数</param>
protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
{
OperationResponse opRequerst = new OperationResponse();
Dictionary<byte, object> dict = new Dictionary<byte, object>();
dict.Add(1, "cctv");
dict.Add(2, "123456");
opRequerst.Parameters = dict;
//对客户端的操作请求进行回复
SendOperationResponse(opRequerst, sendParameters);
}
}
}
5.设置项目输出路径
首先找到photon安装目录(C:\Program Files\Photon Server\deploy\)
在deploy下新建个文件夹ChatServer, 在ChatServer下再新建个文件夹叫bin
最后在VS项目的属性面板选择输出路径为
C:\Program Files\Photon Server\deploy\ChatServer\bin\
最后生成解决方案.
6.打开PhotonServer.config文件,(C:\Program Files\Photon Server\deploy\bin_Win64)
找到<Application Default = “Lite”>填加个节点ChatServer,完成后保存
<Application
Name="ChatServer" //应用名字
BaseDirectory="ChatServer" //根目录名称,在deploy文件夹下的名称
Assembly="ChatServer" //程序集的名称
Type="ChatServer.ChatServer" //主类的全称,命名空间.类名
ForceAutoRestart="true" //是否是自动启动,表示当我们替换服务器文件时候, 不用停止服务器,替换后photon会自动加载文件
WatchFiles="dll;config"
ExcludeFiles="log4net.config">
</Application>
7.最后运行PhotonControl.exe,选择default->start as appliaction, 如果正常显示蓝色图标,出现异常显示灰色图标.