ejabberd_s2s

作为gen_server启动

初始化时创建s2s(mnesia)表,保存的是服务器之间的联系信息,server和server之间的路由

主要为do_route(From, To, Packet)方法

do_route(From, To, Packet) ->
    ?DEBUG("s2s manager~n\tfrom ~p~n\tto ~p~n\tpacket "
       "~P~n",
       [From, To, Packet, 8]),
    case find_connection(From, To) of
      {atomic, Pid} when is_pid(Pid) ->
      ?DEBUG("sending to process ~p~n", [Pid]),
      #xmlel{name = Name, attrs = Attrs, children = Els} =
          Packet,
      NewAttrs =
          jlib:replace_from_to_attrs(jid:to_string(From),
                     jid:to_string(To), Attrs),
      #jid{lserver = MyServer} = From,
      ejabberd_hooks:run(s2s_send_packet, MyServer,
                 [From, To, Packet]),
      send_element(Pid,
               #xmlel{name = Name, attrs = NewAttrs, children = Els}),
      ok;
      {aborted, _Reason} ->
      case xml:get_tag_attr_s(<<"type">>, Packet) of
        <<"error">> -> ok;
        <<"result">> -> ok;
        _ ->
        Err = jlib:make_error_reply(Packet,
                        ?ERR_SERVICE_UNAVAILABLE),
        ejabberd_router:route(To, From, Err)
      end,
      false
    end.
View Code

首先根据from,to在s2s里面查找是否存在路由find_connection(From, To)

如找到则返回存在的pid

如果没找到则利用open_several_connections函数创建:

启动一个ejabberd_s2s_out进程去建立连接,并把建立的信息和pid保存到s2s里面,方便下次路由用到

其中ejabberd_s2s_out作为ejabberd_s2s_out_sup的子进程,连接到别的节点开启的ejabberd_s2s_in 服务(默认开启三个监听接口ejabberd_c2s、ejabberd_s2s_in、ejabberd_http)

转载于:https://www.cnblogs.com/lawen/p/5052563.html

本节属于《跟朱老师学智能网联汽车开发系列课程》的第2季《智能网联汽车开发核心课程》第6部分的第3个课程,本课程主要讲解AutoSar的RTOS。首先围绕ISO17356-3标准文档,来逐行解读OSEKOS的诸多特性。包括任务状态和调度策略,优先级,抢占,资源优先级天花板机制,Counter和Alarm机制等。然后结合AutoSar官方文档来补充讲解AutoSarOS的补充特性,如调度表机制、MultiCore多核的支持、栈监控和OS-Application、4种保护机制等。学完本课程将对AutoSarOS有深度理解和掌握。 智能网联汽车未来十年最值得期待的风口。综合叠加了电动汽车替代传统燃油汽车、自动驾驶辅助甚至替代人工驾驶、传统汽车座舱升级智能座舱、整车和零部件乃至产业链的国产自主可控化等发展趋势。AI、IoT、云计算、大数据、芯片和半导体、操作系统、5G等国家重点发展的“硬科技”,都和智能网联汽车有很紧密的关系。所以除了传统车企外,涌现了“蔚小理”这样的造车新势力,引入了Tesla这样的鲶鱼,又吸引了华为、百度、大疆、小米这样的中国高科技以及互联网巨头。智能网联汽车相较于传统汽车来说,最大的变化是:整车的核心技术和竞争点从机械技术向了计算机技术。所以从车企到tire1等汽车产业链上下游,都将注意力向了“车载计算机及其相关技术”的研究和实践。域控制器、hypervisor、车载以太网、SOME/IP、DoIP、SOA、AGL和QNX、OTA、C-V2X、AutoSAR CP和AP、ROS、SLAM、激光雷达、超声波雷达、毫米波雷达、深度相机、传感器前融合后融合、ADAS、AR-HUD、智能驾驶算法、算力平台、英伟达Xavier和Orin、高通骁龙8155和Ride、华为MDC、地平线征程3和征程5、MobileEye EyeQ5、TI TDA4、 NXP S32G等等,以上列出了一些关心汽车行业的人经常会看到听到的“关键词”。这些都是实现智能网联汽车所需要的关键技术,也是汽车行业工作者形成行业竞争力,试图去理解和分析行业发展趋势的关键技术底蕴。但是客观上智能网联汽车涉及到的技术杂、学科多、内容深,而且本身这些技术都在快速发展演变,这就造成了学习困难、不成体系。这对于传统汽车行业的“老人”,以及有兴趣进入智能汽车行业的“新人”来说,都是很大的障碍和挑战,急需解决方案。本训练营及课程体系就是为解决这个问题。我们将通过系统化的课程,全面覆盖智能网联汽车的“车端”新技术(就是前段中列出的那些关键词),控制深度深入浅出的讲解相关原理和概念、分析相关技术发展趋势。最终目标是希望大家有一定深度的理解智能网联汽车的原理和相关技术,能从整体上认知智能网联汽车这个产品,具备行业趋势的分析研判能力,具备行业上下游之间或者模块与模块之间的沟通能力,帮助大家在智能网联汽车获取核心竞争力,助力个人发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值