将 C# Websocket 示例转换为 Unity MonoBehaviour
Posted
技术标签:
【中文标题】将 C# Websocket 示例转换为 Unity MonoBehaviour【英文标题】:Convert C# Websocket example to Unity MonoBehaviour 【发布时间】:2017-01-28 17:08:15 【问题描述】:有点 C# 菜鸟。 尝试使用 Websocket CSharp 库 http://sta.github.io/websocket-sharp/ 在 Unity 中创建套接字服务器。 如何将以下内容转换为 Monobehaviour,以便我可以简单地附加到游戏对象并运行? 我很清楚我正在扩展 Monobehaviour 并且我正在处理 Awake、Start 和 Update 方法,但是对于嵌套类来说有点模糊, namespaces , 下面我将在我的 Start 方法中放入什么代码,以及是否应该将所有内容都保存在一个 .cs 文件中,或者将其分解,每个类一个文件。
using System;
using WebSocketSharp;
using WebSocketSharp.Server;
namespace Example
public class Laputa : WebSocketBehavior
protected override void OnMessage (MessageEventArgs e)
var msg = e.Data == "BALUS"
? "I've been balused already..."
: "I'm not available now.";
Send (msg);
public class Program
public static void Main (string[] args)
var wssv = new WebSocketServer ("ws://dragonsnest.far");
wssv.AddWebSocketService<Laputa> ("/Laputa");
wssv.Start ();
Console.ReadKey (true);
wssv.Stop ();
using WebSocketSharp;
using WebSocketSharp.Server;
namespace Example
public class Laputa : WebSocketBehavior
protected override void OnMessage (MessageEventArgs e)
var msg = e.Data == "BALUS"
? "I've been balused already..."
: "I'm not available now.";
Send (msg);
public class Program
public static void Main (string[] args)
var wssv = new WebSocketServer ("ws://dragonsnest.far");
wssv.AddWebSocketService<Laputa> ("/Laputa");
wssv.Start ();
Console.ReadKey (true);
wssv.Stop ();
【问题讨论】:
这里有一个关于如何在 Unity/C# github.com/pudility/unityWS987654322@ 中使用 wesockets 的教程 【参考方案1】:首先,我将 wssv 变量声明为类变量,位于 MonoBehavior 的顶部。
初始化(构造wssv,通过调用Start()向上)进入Start()。
输入检查(它将取代您的 Console.ReadKey)进入 Update()。 如果您想在按下(例如 Escape)键时停止,您需要检查 Input.GetKeyDown(),然后在 wssv 对象上调用 Stop。
通常在 Unity3d 中,我们将单独的类保存在单独的文件中,即使它们很短。所以我建议将 Laputa 类移动到它自己的文件中(它不应该是 MonoBehavior)。之后,您的 MonoBehavior 文件将具有变量声明、Start() 和 Update()。很干净。
【讨论】:
以上是关于将 C# Websocket 示例转换为 Unity MonoBehaviour的主要内容,如果未能解决你的问题,请参考以下文章
C# WebSocket 服务端示例代码 + HTML5客户端示例代码
将 Suprema Biostar C++ 代码转换为 C#