Unity WebGL WebSocket 消息头

Posted

技术标签:

【中文标题】Unity WebGL WebSocket 消息头【英文标题】:Unity WebGL WebSocket Message Head 【发布时间】:2017-08-11 18:13:45 【问题描述】:

我已经制作了多人游戏系统。它工作正常。但我想更改消息头(或 - 标记、开销等...)以减少传输的数据。

Node.JS 服务器端有 'message' 标签

wss.on('message',function incoming(message)) 
...
...

但在 Unity 方面,我无法对方法或变量进行微调。

w = new WebSocket (new Uri (url));
yield return StartCoroutine (w.Connect());
w.SendString ("some_data");

如何设置消息标签。我知道 socket.io 可以做到这一点,但我不想碰巧代码。

【问题讨论】:

【参考方案1】:

不幸的是,您只能在 websocket 中使用“消息”标签。您可以在消息中使用标签。例如;

在 Unity 方面;

// add comma between event name and data
w.SendString (string.Format("0,1",eventName,data);

在 js 方面;

wss.on('message',function incoming(message)) 
    // find first comma
    var e = message.indexOf(",");
    if(e != -1)
        console.log("eventName : ",message.substring(0,e)," - data : ", message.substring(e+1,message.length));
    

【讨论】:

感谢您的回复。但这会增加我的数据使用量。 socket.io 是否有机会获得标头? 实际上我没有使用 socket.io 但我猜它有标签。如果您关心的是数据使用,您可以将数据转换为字节数组并制作第一个字节事件 ID。这样,您只需将一个字节添加到数据大小,就会有 256 种不同的事件类型。

以上是关于Unity WebGL WebSocket 消息头的主要内容,如果未能解决你的问题,请参考以下文章

求助!怎么把html嵌入unity所发布的webgl中啊???

Unity WebGL开启“后Flash”世界

尝试将 Agora IO 与 Unity WebGL 集成。构建演示场景时出错

如何解决 WebGL Unity 游戏中的此错误?

用于 Unity 和虚幻引擎的 Asm.js 与 WebGL

WebSocket 反爬虫