Giter Site home page Giter Site logo

socket.abandon about skynet HOT 5 CLOSED

cloudwu avatar cloudwu commented on August 15, 2024
socket.abandon

from skynet.

Comments (5)

cloudwu avatar cloudwu commented on August 15, 2024

这个是忘记删了, 我会在这两天清理掉这个 api .

目前, 用 socket.listen 监听后, accept 到的 id , 不调用 socket.start 是不会开始工作的. 你可以把 id 发到别的服务, 在新的服务中调用 socket.start 开始工作.

如果是中途转移, 简单的 abandon/accept 很难完全实现正确. 还需要多点时间考虑.

from skynet.

lparam avatar lparam commented on August 15, 2024

ok.

from skynet.

cloudwu avatar cloudwu commented on August 15, 2024

其实 socket.start 就预留了之前的 socket.accept 的功能. 我把这部分补上了.

不过, 在两次 socket.start 之间有可能丢失数据. 这个需要应用层协议保证.

完备的 start / abandon / start 需要更复杂的机制把中间数据转发. 增加这个设计复杂性不太值得.

https://github.com/cloudwu/skynet/blob/master/service/testsocket.lua
展示了 3 种方式响应接入的连接

from skynet.

lparam avatar lparam commented on August 15, 2024

谢谢。不过我觉得socket.start这个API有二义性。
local id = socket.listen("127.0.0.1", 8000)
socket.start(id , function(id, addr)
skynet.fork(accepter, id)
end)
把上面socket.start里的function合并到socket.listen,socket.start只处理accept之后的socket id,这样感觉会好些。

from skynet.

cloudwu avatar cloudwu commented on August 15, 2024

listen 的 id 也可以转移到新的 service 处理的.
start 的含义是开始接管一个 id .
listen 的 id 需要一个 callback , 其它的不需要

2014-03-14 11:40 GMT+08:00 lparam [email protected]:

谢谢。不过我觉得socket.start这个API有二义性。
local id = socket.listen("127.0.0.1", 8000)
socket.start(id , function(id, addr)
skynet.fork(accepter, id)
end)
把上面socket.start里的function合并到socket.listen,socket.start只处理accept之后的socket
id,这样感觉会好些。


Reply to this email directly or view it on GitHubhttps://github.com//issues/73#issuecomment-37614196
.

http://blog.codingnow.com

from skynet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.