unity通过socket.io联网

unity前端部分

/* 
新建空对象,引入模块Socket IO  Component
Url: 表示连接的地址
自动连接:自动断线重连
Reconnect Delay: 重连间隔
Ping Interval:心跳连接间隔
Ping Timeout:心跳连接超时
*/ 
socketIO.On("connect", (e) => { Debug.Log("连接成功"); });
socketIO.On("connecting", (e) => { Debug.Log("正在连接"); });
socketIO.On("disconnect", (e) => { Debug.Log("断开连接"); });
socketIO.On("connect_failed", (e) => { Debug.Log("连接失败"); });
socketIO.On("error", (e) => { Debug.Log("错误发生,并且无法被其他事件类型所处理"); });
socketIO.On("message", (e) => { Debug.Log("同服务器端message事件"); });
socketIO.On("anything", (e) => { Debug.Log("同服务器端anything事件"); });
socketIO.On("reconnect_failed", (e) => { Debug.Log("重连失败"); });
socketIO.On("reconnect", (e) => { Debug.Log("成功重连"); });
socketIO.On("reconnecting", (e) => { Debug.Log("正在重连"); });
//上传数据
Dictionary<string, string> data = new Dictionary<string, string>();
data["username"] = "liluo";
data["password"] = "000";
socketIO.Emit("login", new JSONObject(data));
//接受数据
socketIO.On("login", (e) =>
{
	// 这是接受的json数据
	Debug.Log(e.data);
	// 转换为字符串
	string jsonTest = e.data.ToString();
	// 解析字符串
	ModelTest obj = JsonUtility.FromJson<ModelTest>(jsonTest);
	// 得到的字符串
	Debug.Log(obj.statu);
	// 得到的数字
	Debug.Log(obj.number);
	// 得到的数组
	foreach (int inter in obj.list)
	{
		Debug.Log(inter);
	}
});
// 解析出来的结果的类型
[System.Serializable]
public class ModelTest
{
	public string statu;
	public int number;
	public int[] list;
}
// 输入框输入的文本记得去掉最后的\n
string name = inputName.GetComponent<TMP_Text>().text;
name = name.Substring(0, name.Length - 1);

node.js后端部分

// 监听8001
var io = require('socket.io')(8001);
// 连接成功
io.on('connection', function (socket) { console.log('用户连接');
  socket.on('show', function(msg) {
    // msg:json对象
    // 加入房间
    socket.join('game');
    // 离开房间
    socket.leave('game');
    io.emit("给所有人");
    socket.emit("给链连接者");
    socket.to(msg).emit('hey', 'I just met you');
    socket.broadcast.emit('给除去链接者');
    socket.to('game').emit("给除去连接者该房间的所有人");
    socket.in('game').emit("给该房间的所有人");
  });

    //断开消息
    socket.on('disconnect', function () { console.log('用户登出'); });
});

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

莉萝爱萝莉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值