关于netpack的问题

101 views
Skip to first unread message

刘亮

unread,
Sep 11, 2018, 10:32:36 PM9/11/18
to skynet-users
netpack 中queue的数据通过pop拿出来后,必须要调用netpack.tostring释放原先保持的socket数据的buffer吗?
我看现在的例子中,gate.lua是通过redirect转发给agent的,在agent中也没有调用netpack.tostring把userdata转为string,而是直接使用host:dispatch对数据解包了。



云风 Cloud Wu

unread,
Sep 11, 2018, 11:20:30 PM9/11/18
to skynet...@googlegroups.com
不要直接使用 netpack , 除非你充分理解了它是什么(至少看一遍源代码)。

刘亮 <liangl...@gmail.com>于2018年9月12日周三 上午10:32写道:
netpack 中queue的数据通过pop拿出来后,必须要调用netpack.tostring释放原先保持的socket数据的buffer吗?
我看现在的例子中,gate.lua是通过redirect转发给agent的,在agent中也没有调用netpack.tostring把userdata转为string,而是直接使用host:dispatch对数据解包了。



--
您收到此邮件是因为您订阅了Google网上论坛上的“skynet-users”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到skynet-users...@googlegroups.com
要发帖到此群组,请发送电子邮件至skynet...@googlegroups.com
访问此群组:https://groups.google.com/group/skynet-users
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/skynet-users/1d55a7d9-e42e-440d-9030-36305c0012bf%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

云风 Cloud Wu

unread,
Sep 11, 2018, 11:46:59 PM9/11/18
to skynet...@googlegroups.com
我今天去除了 gate.lua 的 netpack 依赖, 希望这样可以减少误解。

云风 Cloud Wu <clo...@gmail.com>于2018年9月12日周三 上午11:20写道:

刘亮

unread,
Sep 12, 2018, 2:59:28 AM9/12/18
to skynet-users
多谢云风大哥回复,看了您修改的部分,按照这个逻辑对代码进行了修改,现在可以跑起来。


在 2018年9月12日星期三 UTC+8上午11:46:59,云风写道:
我今天去除了 gate.lua 的 netpack 依赖, 希望这样可以减少误解。

云风 Cloud Wu <clo...@gmail.com>于2018年9月12日周三 上午11:20写道:
不要直接使用 netpack , 除非你充分理解了它是什么(至少看一遍源代码)。

刘亮 <liangl...@gmail.com>于2018年9月12日周三 上午10:32写道:
netpack 中queue的数据通过pop拿出来后,必须要调用netpack.tostring释放原先保持的socket数据的buffer吗?
我看现在的例子中,gate.lua是通过redirect转发给agent的,在agent中也没有调用netpack.tostring把userdata转为string,而是直接使用host:dispatch对数据解包了。



--
您收到此邮件是因为您订阅了Google网上论坛上的“skynet-users”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到skynet-users+unsubscribe@googlegroups.com

刘亮

unread,
Sep 12, 2018, 3:56:16 AM9/12/18
to skynet-users
云风大哥,您好,
还有一个疑惑,就是在gate中redirect到agent的msg,您说了gateserver不会释放它,但是我在agent中也没看到释放的地方。
我直接在agent中的通过skynet.trash去释放会出错。如果不管它,倒是没问题。
我找了其他地方,也没有发现有地方去释放这块内存。


在 2018年9月12日星期三 UTC+8上午11:46:59,云风写道:
我今天去除了 gate.lua 的 netpack 依赖, 希望这样可以减少误解。

云风 Cloud Wu <clo...@gmail.com>于2018年9月12日周三 上午11:20写道:
不要直接使用 netpack , 除非你充分理解了它是什么(至少看一遍源代码)。

刘亮 <liangl...@gmail.com>于2018年9月12日周三 上午10:32写道:
netpack 中queue的数据通过pop拿出来后,必须要调用netpack.tostring释放原先保持的socket数据的buffer吗?
我看现在的例子中,gate.lua是通过redirect转发给agent的,在agent中也没有调用netpack.tostring把userdata转为string,而是直接使用host:dispatch对数据解包了。



--
您收到此邮件是因为您订阅了Google网上论坛上的“skynet-users”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到skynet-users+unsubscribe@googlegroups.com

云风 Cloud Wu

unread,
Sep 12, 2018, 4:05:59 AM9/12/18
to skynet...@googlegroups.com


刘亮 <liangl...@gmail.com>于2018年9月12日周三 下午3:56写道:
云风大哥,您好,
还有一个疑惑,就是在gate中redirect到agent的msg,您说了gateserver不会释放它,但是我在agent中也没看到释放的地方。
我直接在agent中的通过skynet.trash去释放会出错。如果不管它,倒是没问题。
我找了其他地方,也没有发现有地方去释放这块内存。


 https://github.com/cloudwu/skynet/wiki/LuaAPI   关于消息数据指针  这一节有说明。

刘亮

unread,
Sep 12, 2018, 4:45:11 AM9/12/18
to skynet-users
明白了。谢谢。

在 2018年9月12日星期三 UTC+8下午4:05:59,云风写道:
Reply all
Reply to author
Forward
0 new messages