mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-25 04:33:05 +00:00
use sproto global slot
This commit is contained in:
@@ -2,6 +2,7 @@ local skynet = require "skynet"
|
||||
local netpack = require "netpack"
|
||||
local socket = require "socket"
|
||||
local sproto = require "sproto"
|
||||
local sprotoloader = require "sprotoloader"
|
||||
|
||||
local host
|
||||
local send_request
|
||||
@@ -61,9 +62,10 @@ skynet.register_protocol {
|
||||
end
|
||||
}
|
||||
|
||||
function CMD.start(gate, fd, proto)
|
||||
host = sproto.new(proto.c2s):host "package"
|
||||
send_request = host:attach(sproto.new(proto.s2c))
|
||||
function CMD.start(gate, fd)
|
||||
-- slot 1,2 set at main.lua
|
||||
host = sprotoloader.load(1):host "package"
|
||||
send_request = host:attach(sprotoloader.load(2))
|
||||
skynet.fork(function()
|
||||
while true do
|
||||
send_package(send_request "heartbeat")
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
local skynet = require "skynet"
|
||||
local sprotoloader = require "sprotoloader"
|
||||
|
||||
local max_client = 64
|
||||
|
||||
skynet.start(function()
|
||||
print("Server start")
|
||||
skynet.uniqueservice("protoloader")
|
||||
local console = skynet.newservice("console")
|
||||
skynet.newservice("debug_console",8000)
|
||||
skynet.newservice("simpledb")
|
||||
|
||||
13
examples/protoloader.lua
Normal file
13
examples/protoloader.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
-- module proto as examples/proto.lua
|
||||
package.path = "./examples/?.lua;" .. package.path
|
||||
|
||||
local skynet = require "skynet"
|
||||
local sprotoparser = require "sprotoparser"
|
||||
local sprotoloader = require "sprotoloader"
|
||||
local proto = require "proto"
|
||||
|
||||
skynet.start(function()
|
||||
sprotoloader.save(proto.c2s, 1)
|
||||
sprotoloader.save(proto.s2c, 2)
|
||||
-- don't call skynet.exit() , because sproto.core may unload and the global slot become invalid
|
||||
end)
|
||||
@@ -1,8 +1,5 @@
|
||||
package.path = "./examples/?.lua;" .. package.path
|
||||
|
||||
local skynet = require "skynet"
|
||||
local netpack = require "netpack"
|
||||
local proto = require "proto"
|
||||
|
||||
local CMD = {}
|
||||
local SOCKET = {}
|
||||
@@ -12,7 +9,7 @@ local agent = {}
|
||||
function SOCKET.open(fd, addr)
|
||||
skynet.error("New client from : " .. addr)
|
||||
agent[fd] = skynet.newservice("agent")
|
||||
skynet.call(agent[fd], "lua", "start", gate, fd, proto)
|
||||
skynet.call(agent[fd], "lua", "start", gate, fd)
|
||||
end
|
||||
|
||||
local function close_agent(fd)
|
||||
|
||||
Reference in New Issue
Block a user