@@ -83,45 +83,55 @@ namespace ngl
83
83
naddress::set_session (aserverid, asession);
84
84
}
85
85
86
- void actor_client::actor_server_register (i32_serverid aactorserver )
86
+ bool actor_client::handle ( const message<np_connect_actor_server>& adata )
87
87
{
88
- if (nconfig::m_nodetype == NODE_TYPE::ROBOT)
89
- return ;
90
88
const tab_servers* tab = ttab_servers::tab ();
91
- const tab_servers* tabactor = ttab_servers::tab (aactorserver );
89
+ const tab_servers* tabactor = ttab_servers::tab (adata. get_data ()-> m_serverid );
92
90
i64_actorid lactorid = id_guid ();
93
- nets::connect (aactorserver, [tab, tabactor, lactorid](int asession)
94
- {
95
- i64_actorid lactorserve = actor_server::actorid ();
96
- set_node (tabactor->m_id , asession);
97
- naddress::actor_add (tabactor->m_id , lactorserve);
98
91
99
- // 注册结点
100
- np_actornode_register lpram
92
+ i64_actorid lactorserve = actor_server::actorid ();
93
+ set_node (tabactor->m_id , adata.get_data ()->m_session );
94
+ naddress::actor_add (tabactor->m_id , lactorserve);
95
+
96
+ // 注册结点
97
+ np_actornode_register lpram
98
+ {
99
+ .m_node
100
+ {
101
+ .m_name = std::format (
102
+ " node<id:{},type:{},name:{},tcount:{},area:{}>" ,
103
+ tab->m_id , em<NODE_TYPE>::get_name (tab->m_type ), tab->m_name , tab->m_tcount , tab->m_area
104
+ ),
105
+ .m_nodetype = tab->m_type ,
106
+ .m_serverid = tab->m_id ,
107
+ }
108
+ };
109
+ actor_manage::getInstance ().get_type (lpram.m_node .m_actortype );
110
+ naddress::ergodic (
111
+ [&lpram](const std::map<nguid, i32_serverid>& aactorserver, const std::map<i32_serverid, actor_node_session>&)
112
+ {
113
+ for (const std::pair<const nguid, i32_serverid>& item : aactorserver)
101
114
{
102
- .m_node
103
- {
104
- .m_name = std::format (
105
- " node<id:{},type:{},name:{},tcount:{},area:{}>" ,
106
- tab->m_id , em<NODE_TYPE>::get_name (tab->m_type ), tab->m_name , tab->m_tcount , tab->m_area
107
- ),
108
- .m_nodetype = tab->m_type ,
109
- .m_serverid = tab->m_id ,
110
- }
111
- };
112
- actor_manage::getInstance ().get_type (lpram.m_node .m_actortype );
113
- naddress::ergodic (
114
- [&lpram](const std::map<nguid, i32_serverid>& aactorserver, const std::map<i32_serverid, actor_node_session>&)
115
- {
116
- for (const std::pair<const nguid, i32_serverid>& item : aactorserver)
117
- {
118
- if (lpram.m_node .m_serverid == item.second )
119
- lpram.m_add .push_back (item.first );
120
- }
121
- return true ;
122
- });
123
- nets::sendbysession (asession, lpram, lactorserve, lactorid);
124
- }, true , true );
115
+ if (lpram.m_node .m_serverid == item.second )
116
+ lpram.m_add .push_back (item.first );
117
+ }
118
+ return true ;
119
+ });
120
+ nets::sendbysession (adata.get_data ()->m_session , lpram, lactorserve, lactorid);
121
+ return true ;
122
+ }
123
+
124
+ void actor_client::actor_server_register (i32_serverid aactorserver)
125
+ {
126
+ if (nconfig::m_nodetype == NODE_TYPE::ROBOT)
127
+ return ;
128
+ nets::connect (aactorserver, [this , aactorserver](int asession)
129
+ {
130
+ auto pro = std::make_shared<np_connect_actor_server>();
131
+ pro->m_serverid = aactorserver;
132
+ pro->m_session = asession;
133
+ actor::send_actor (id_guid (), pro);
134
+ }, false , true );
125
135
}
126
136
127
137
void actor_client::actor_server_register ()
0 commit comments