我目前正在使用html5 canvas和websockets构建一个带有游戏的网页.我有一个在服务器上运行的perl编写的websocket服务器:3000.在服务器上我还安装了apache,并创建了一个用户可以访问的网站:http:// server /.此页面上的javascript为ws:// server:3000创建一个websocket
连接工作,我可以从我的浏览器发送消息并获得响应,现在在div中显示所有内容.我发送的消息现在只是"消息:...",因此服务器知道它是一条消息,并向当前连接到"游戏"的所有用户输出"...".
现在的问题是,任何人都可以编写自己的客户端,连接到ws:// server:3000并发送/接收相应的消息.这样他们就可以使用我的后端,但不是我的客户端(我希望他们只能从http:// server /中播放).
如何确保仅使用我的客户端?主要担心的是作弊.您可以编写一个连接到端口的机器人,通过发送消息并解释它收到的消息来为您播放...如何克服这个问题?
这是我最近试图解决的问题的简化版本.我有以下两个类:
class Container { }
class Container<T> : Container
{
T Value
{
get;
private set;
}
public Container(T value)
{
Value = value;
}
public T GetValue()
{
return Value;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想做:
Container<int> c1 = new Container<int>(10);
Container<double> c2 = new Container<double>(5.5);
List<Container> list = new List<Container>();
list.Add(c1);
list.Add(c2);
foreach (Container item in list)
{
Console.WriteLine(item.Value);
Console.WriteLine(item.GetValue());
}
Run Code Online (Sandbox Code Playgroud)
实现此功能的最佳方法是什么?有可能吗?我想我可能已经解决了这个问题,但我认为这是一个解决方案,我正在寻找一些设计模式.
Michal,请提前感谢您的回复.
PS
我试过接口,虚函数,抽象类,抽象函数; 甚至在超类中创建函数,可以通过名称调用实际类型的属性(使用反射)...我仍然无法实现我想要的...