python和unity进行websocket通信

13 篇文章 28 订阅 ¥99.90 ¥299.90

本地python和unity如何进行交互

通信的选择:本地不同程序之间进行交互,主要依靠通信,通信的方法有很多,有http,有websocket通信…那到底是选择http还是websocket呢,我推荐使用websocet。

http缺点:因为直播间的弹幕是源源不断的,使用http需要客户端连续不断对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端,这种传统的模式带来很明显的缺点,即客户端需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源

websocket优点:而websocket具有较小的控制开销。在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小。在不包含扩展的情况下,对于服务器到客户端的内容,此头部大小只有2至10字节(和数据包长度有关);对于客户端到服务器的内容,此头部还需要加上额外的4字节的掩码。相对于HTTP请求每次都要携带完整的头部,此项开销显著减少了。

websocket通信更强的实时性。由于协议是全双工的,所以服务器可以随时主动给客户端下发数据。相对于HTTP请求需要等待客户端发起请求服务端才能响应,延迟明显更少

WebSocketAPI介绍

websocketapi各种语言都有提供

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在PythonUnity之间进行WebSocket通信,您需要使用一个WebSocket库来在Python中建立WebSocket服务器,并使用UnityWebSocket API来连接该服务器并发送/接收消息。 以下是一个简单的示例,演示如何使用Python Tornado库作为WebSocket服务器,以及如何在Unity中使用WebSocket API连接该服务器: Python服务器: ```python import tornado.ioloop import tornado.web import tornado.websocket class WebSocketHandler(tornado.websocket.WebSocketHandler): def open(self): print("WebSocket opened") def on_message(self, message): print("Received message: " + message) self.write_message("You said: " + message) def on_close(self): print("WebSocket closed") app = tornado.web.Application([ (r"/websocket", WebSocketHandler), ]) if __name__ == "__main__": app.listen(8888) print("WebSocket server started") tornado.ioloop.IOLoop.instance().start() ``` Unity客户端: ```csharp using UnityEngine; using WebSocketSharp; public class WebSocketClient : MonoBehaviour { private WebSocket ws; void Start() { ws = new WebSocket("ws://localhost:8888/websocket"); ws.OnOpen += OnOpen; ws.OnMessage += OnMessage; ws.OnClose += OnClose; ws.Connect(); } void Update() { if (Input.GetKeyDown(KeyCode.Space)) { ws.Send("Hello from Unity!"); } } void OnOpen(object sender, System.EventArgs e) { Debug.Log("WebSocket opened"); } void OnMessage(object sender, MessageEventArgs e) { Debug.Log("Received message: " + e.Data); } void OnClose(object sender, CloseEventArgs e) { Debug.Log("WebSocket closed"); } } ``` 您需要确保Python服务器和Unity客户端都在同一网络中,并且您需要将Python服务器的IP地址和端口号更新到Unity客户端的WebSocket连接中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互动创客坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值