Unity-Python-VUE Socket通信

19 篇文章 7 订阅
9 篇文章 0 订阅

需求描述:Unity通过Socket发送数据给网页在前端VUE中显示,socket服务采用Python实现。

实际上这个功能可以分为下面三个部分:查了好多资料,整理如下的学习路线方便新手入坑。

1、Unity和服务端的Socket通信;

Unity的Socket服务,这个部分还算顺利没有遇到太坑的问题,参考下面的文章:

http://www.luohanjie.com/2019-07-25/socket-io-for-unity3d.html

这里提到的一个插件 Socket For Unity3d在官网上可能已经下架了。

这里提供了一个下载地址:

https://download.csdn.net/download/zhoudapeng01/13244328

3、Python中Socket的服务搭建;

注意版本!版本!版本!,这一部分坑就多了,搞了几天才发现问题,都快搞疯了。如果你的前端不涉及跨域的问题,按照上文博客中的方式也可以实现,我一方面是跨域,一方面是之前没那篇文章所以走了些弯路。

推荐参考下面的博客进行python后端的搭建。这里的代码也是仿造博客中写的,虽然没几行代码可是坑是真多啊。

https://blog.csdn.net/zcxey2911/article/details/107032731/?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242

from flask import Flask  
from flask import request,jsonify  
from flask_cors import CORS  
from flask_socketio import SocketIO,send,emit  
import urllib.parse  


app = Flask(__name__)  
CORS(app,cors_allowed_origins="*")  
socketio = SocketIO(app,cors_allowed_origins='*')  



@socketio.on('unitySent')
def on_unitySent(data):    
    if data:        
        socketio.emit('sentToVue', data, skip_sid=True)
    else:
        print ('Recieved Empty Data!')
    
      
if __name__ == '__main__':
    socketio.run(app,debug=True,host="0.0.0.0",port=5000)

坑1:eventlet没有安装:

没有安装eventlet,没有报错,但是服务起来的时候没有监听提示。这里最恶心的是前后端都没有报错,一度认为是前端的问题,尝试了不同的VUE版本,最后无意中发现是这个问题。

坑2:版本不对应,这个恶心在这里的版本依赖关系,建议使用pip install -r requirement.txt 文件的方式,因为有些时候是底层的依赖库版本有问题,排查起来相当费劲。

推荐一份本文使用的版本:

requirements.txt

click==7.1.2
dnspython==2.0.0
eventlet==0.25.1
Flask==1.1.2
Flask-Cors==3.0.9
Flask-SocketIO==4.3.1
greenlet==0.4.16
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
python-engineio==3.13.2
python-socketio==4.6.0
Werkzeug==1.0.1

2、VUE和服务端的Socket通信;

VUE中使用socket要注意使用的版本,主要是Vue.use()使用的方式不同,这里是按照类的方式使用的,消息的添加参考上面的博客即可,注意是上面不是下面。

VUE中使用Socket.io参考:https://www.html.cn/web/vue-js/19306.html

其他:

在做的过程中发现Python 的Socket服务坑好多啊,如果不是必须使用python,建议大家可以转为Node.js,使用方便,没问题。要不是为了后期数据处理,真的都想放弃了。

Python(客户端)Node.js(服务端) 参考:https://www.jianshu.com/p/848d99c041bd

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值