Freeswitch中CHANNEL_HANGUP外呼挂断事件

1.CHANNEL_HANGUP外呼挂断事件

  • 事件详细

##################  外呼挂断:#############################
[EslMessage{contentType=command/reply, headers=3, body=0 lines}]
2023-11-16T03:41:33.514+0800 INFO  c.e.c.v.s.c.i.FsServerEventHandler - eventReceived:CHANNEL_HANGUP
2023-11-16T03:41:33.514+0800 INFO  c.e.c.v.s.c.i.FsServerEventHandler - EventBody********:{variable_effective_caller_id_number=1000, =, variable_sip_network_ip=192.168.5.162, variable_sip_allow=INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, Other-Leg-Unique-ID=f6616956-15ad-40e6-975b-6d81aff8579e, variable_user_context=default, variable_rtp_use_ssrc=2237112328, Caller-Channel-Progress-Media-Time=1700134931262852, Caller-Dialplan=XML, variable_sip_reply_port=9726, variable_originate_disposition=SUCCESS, variable_sip_cseq=75499248, Channel-State-Number=10, variable_uuid=1f790466-9fc0-4f83-a098-6cf1eb943850, variable_remote_media_ip=192.168.5.162, Hangup-Cause=NORMAL_CLEARING, variable_call_uuid=1f790466-9fc0-4f83-a098-6cf1eb943850, Other-Leg-Destination-Number=voicemail, Caller-RDNIS=1000, variable_outbound_caller_id_name=10086, Caller-Profile-Created-Time=1700134930242850, Other-Leg-Privacy-Hide-Name=false, variable_rtp_use_pt=0, variable_dialed_user=1001, Caller-Screen-Bit=true, Caller-Logical-Direction=outbound, variable_hangup_after_bridge=false, variable_sip_profile_name=internal, variable_write_rate=8000, Other-Leg-Channel-Bridged-Time=0, variable_sofia_profile_url=sip:mod_sofia@192.168.5.97:5060, variable_originate_failed_cause=USER_NOT_REGISTERED, Caller-Channel-Progress-Time=1700134928282858, variable_sip_from_tag=8Xr8g0917g09m, variable_sofia_profile_name=internal, variable_text_media_flow=disabled, variable_sip_contact_uri=1000@192.168.5.162:9726, variable_recording_file=/data/RDPx64/webapps/fs_recordings/1f790466-9fc0-4f83-a098-6cf1eb943850_2023-11-16-19-42-10_1001_1000.wav, Other-Leg-Dialplan=XML, Other-Leg-Network-Addr=192.168.5.162, variable_originated_legs=f6616956-15ad-40e6-975b-6d81aff8579e;Outbound Call;default 192.168.5.97 1001, Caller-Network-Addr=192.168.5.162, variable_sip_contact_port=9726, variable_rtp_use_codec_name=PCMU, variable_originate_early_media=true, variable_sip_user_agent=Genesyslab.Sip.Endpoint 8.0.0.10 L-PSDK-Q-SIP-8-0.us.int.genesyslab.com-083010-021849   Genesyslab.Sip.Endpoint.Provider.CP 8.0.0.10 L-PSDK-Q-SIP-8-0.us.int.genesyslab.com-083010-021849, variable_DP_MATCH=ARRAY::1001|:1001, variable_sip_contact_host=192.168.5.162, variable_ringback=%(2000,4000,440,480), variable_bridge_to=f6616956-15ad-40e6-975b-6d81aff8579e, variable_write_codec=PCMU, variable_ep_codec_string=CORE_PCM_MODULE.PCMU@8000h@20i@64000b,CORE_PCM_MODULE.PCMA@8000h@20i@64000b, variable_sip_to_host=192.168.5.162, variable_remote_media_port=44758, Channel-Read-Codec-Name=PCMU, Channel-Presence-ID=1000@192.168.5.97, variable_audio_media_flow=sendrecv, Channel-HIT-Dialplan=true, Caller-Channel-Last-Hold=0, variable_session_id=195, variable_bridge_uuid=f6616956-15ad-40e6-975b-6d81aff8579e, variable_sip_to_user=1000, variable_sip_recover_via=SIP/2.0/UDP 192.168.5.97;rport=5060;branch=z9hG4bKDU68ySpBUyryN, variable_sip_full_to=<sip:1000@192.168.5.162:9726;rinstance=eacf349ed3bb70b1;transport=udp>;tag=ea01aec4, Other-Leg-Privacy-Hide-Number=false, variable_recovery_profile_name=internal, Channel-Write-Codec-Rate=8000, Other-Leg-Source=mod_loopback, variable_rtp_last_audio_codec_string=PCMU@8000h@20i@1c, variable_direction=outbound, variable_rtp_use_codec_channels=1, Event-Name=CHANNEL_HANGUP, variable_accountcode=1000, variable_sip_network_port=9726, variable_sip_contact_user=1000, variable_rtp_use_codec_rate=8000, variable_channel_name=sofia/internal/1000@192.168.5.162:9726, variable_remote_audio_media_flow=sendrecv, variable_presence_id=1000@192.168.5.97, variable_advertised_media_ip=192.168.5.97, variable_bridge_channel=loopback/voicemail-a, Answer-State=hangup, Channel-Write-Codec-Name=PCMU, Other-Leg-Screen-Bit=true, Caller-Channel-Resurrect-Time=0, variable_effective_caller_id_name=Extension 1000, Other-Leg-Channel-Resurrect-Time=0, Caller-Orig-Caller-ID-Number=0000000000, variable_sip_full_via=SIP/2.0/UDP 192.168.5.97;rport=5060;branch=z9hG4bKDU68ySpBUyryN, variable_dialed_extension=1001, variable_sip_outgoing_contact_uri=<sip:mod_sofia@192.168.5.97:5060>, Caller-Channel-Transfer-Time=0, variable_sip_contact_params=rinstance=eacf349ed3bb70b1;transport=udp, Caller-Channel-Created-Time=1700134928082851, Other-Leg-Context=default, variable_dtmf_type=rfc2833, variable_export_vars=dialed_extension, variable_rtp_audio_recv_pt=0, variable_original_read_rate=8000, Other-Leg-Callee-ID-Number=default 192.168.5.97 1001, variable_sip_full_from=<sip:0000000000@192.168.5.97>;tag=8Xr8g0917g09m, variable_local_media_port=23938, Core-UUID=9674935c-bf3e-4391-941f-4108d7b0f6e6, variable_pre_transfer_caller_id_number=0000000000, Other-Leg-Caller-ID-Name=Extension 1000, variable_rtp_2833_recv_payload=101, variable_originate_causes=f6616956-15ad-40e6-975b-6d81aff8579e;NONE, variable_RECORD_STEREO=true, FreeSWITCH-Hostname=gcxi, variable_default_gateway=example.com, FreeSWITCH-IPv6=::1, FreeSWITCH-IPv4=192.168.5.97, Caller-Destination-Number=1001, Caller-Channel-Answered-Time=1700134930242850, Other-Leg-Logical-Direction=inbound, Caller-Callee-ID-Name=Outbound Call, variable_transfer_ringback=local_stream://moh, Event-Date-Timestamp=1700134939762847, variable_current_application_data=loopback/app=voicemail:default 192.168.5.97 1001, Channel-Read-Codec-Rate=8000, variable_sip_to_params=rinstance=eacf349ed3bb70b1;transport=udp, variable_read_rate=8000, Presence-Call-Direction=outbound, Unique-ID=1f790466-9fc0-4f83-a098-6cf1eb943850, variable_local_video_ip=192.168.5.97, Other-Type=originatee, Channel-Call-State=ACTIVE, Other-Leg-RDNIS=1000, Event-Calling-File=switch_channel.c, variable_dialed_domain=192.168.5.97, Other-Leg-Profile-Created-Time=1700134931262852, variable_rtp_use_timer_name=soft, Channel-Write-Codec-Bit-Rate=64000, variable_current_application=bridge, Caller-Channel-Hold-Accum=0, Other-Leg-Channel-Created-Time=1700134931262852, FreeSWITCH-Switchname=freeswitch01, Caller-Privacy-Hide-Number=false, variable_default_areacode=86, Other-Leg-Channel-Transfer-Time=0, variable_transfer_source=1700134930:24303aff-f112-4b56-8400-e7c971b07a53:bl_xfer:1001/default/XML, Caller-Channel-Bridged-Time=1700134931282847, Caller-Source=src/switch_ivr_originate.c, variable_rtp_use_codec_string=OPUS,G722,PCMU,PCMA,VP8, Caller-ANI=0000000000, variable_sip_from_host=192.168.5.97, Caller-Channel-Hangup-Time=0, variable_endpoint_disposition=ANSWER, variable_rtp_use_codec_ptime=20, variable_video_media_flow=sendrecv, Channel-Read-Codec-Bit-Rate=64000, Event-Calling-Function=switch_channel_perform_hangup, Caller-Profile-Index=2, Channel-Name=sofia/internal/1000@192.168.5.162:9726, variable_sip_recover_contact=<sip:1000@192.168.5.162:9726;rinstance=eacf349ed3bb70b1;transport=udp>, Channel-Call-UUID=1f790466-9fc0-4f83-a098-6cf1eb943850, Caller-Transfer-Source=1700134930:24303aff-f112-4b56-8400-e7c971b07a53:bl_xfer:1001/default/XML, Other-Leg-Channel-Hangup-Time=0, Caller-Context=default, variable_sip_req_uri=1000@192.168.5.162:9726;rinstance=eacf349ed3bb70b1;transport=udp, variable_DIALSTATUS=SUCCESS, variable_sip_from_user=0000000000, variable_call_timeout=999, Other-Leg-Caller-ID-Number=1000, Event-Calling-Line-Number=3286, Caller-Unique-ID=1f790466-9fc0-4f83-a098-6cf1eb943850, Caller-Caller-ID-Number=1000, Caller-Caller-ID-Name=Outbound Call, variable_read_codec=PCMU, variable_rtp_local_sdp_str=v=0
, Channel-State=CS_EXECUTE, variable_callgroup=techsupport, variable_sip_from_uri=0000000000@192.168.5.97, variable_sip_to_uri=1000@192.168.5.162:9726, Other-Leg-Callee-ID-Name=Outbound Call, Other-Leg-Orig-Caller-ID-Number=0000000000, variable_original_read_codec=PCMU, Other-Leg-Channel-Last-Hold=0, variable_remote_video_media_flow=inactive, Caller-Callee-ID-Number=default 192.168.5.97 1001, variable_local_media_ip=192.168.5.97, variable_rtp_2833_send_payload=101, variable_transfer_fallback_extension=operator, Caller-Channel-Name=sofia/internal/1000@192.168.5.162:9726, Other-Leg-Channel-Answered-Time=0, Caller-Direction=outbound, variable_called_party_callgroup=techsupport, variable_toll_allow=domestic,international,local, variable_sip_local_network_addr=192.168.5.97, variable_sip_to_tag=ea01aec4, variable_sip_invite_domain=192.168.5.97, Other-Leg-Channel-Name=loopback/voicemail-a, variable_sip_call_id=d9159c0d-fed4-123c-ada9-000c291b6650, variable_sip_reply_host=192.168.5.162, variable_sip_destination_url=sip:1000@192.168.5.162:9726;rinstance=eacf349ed3bb70b1;transport=udp, variable_outbound_caller_id_number=10086, Call-Direction=outbound, Other-Leg-Direction=outbound, Other-Leg-Channel-Progress-Media-Time=1700134931262852, Caller-Privacy-Hide-Name=false, Event-Date-Local=2023-11-16 19:42:19, variable_continue_on_fail=true, Other-Leg-ANI=0000000000, variable_sip_to_port=9726, Event-Date-GMT=Thu, 16 Nov 2023 11:42:19 GMT, variable_transfer_history=1700134930:24303aff-f112-4b56-8400-e7c971b07a53:bl_xfer:1001/default/XML,
, variable_local_video_port=29476, variable_last_bridge_role=originator, variable_signal_bond=f6616956-15ad-40e6-975b-6d81aff8579e, Other-Leg-Channel-Progress-Time=0, Event-Sequence=42829, variable_max_forwards=70, variable_is_outbound=true, variable_last_bridge_to=f6616956-15ad-40e6-975b-6d81aff8579e, Other-Leg-Channel-Hold-Accum=0}
2023-11-16T03:41:33.515+0800 INFO  c.e.c.v.s.c.i.FsServerEventHandler - 用户挂断, 主叫:1000 , 被叫:default 192.168.5.97 1001 , response:null ,hangup cause:NORMAL_CLEARING

  •  获取需要参数

 String callUuid = event.get("Channel-Call-UUID"); String eventDate = event.get("Event-Date-Local"); String logicalDirection = event.get("Caller-Logical-Direction"); String callDirection = event.get("Other-Leg-Logical-Direction"); String otherLegAni = event.get("Other-Leg-ANI"); //Other-Leg-ANI=0000000000 if(StringUtils.isNotEmpty(callDirection)&& !"0000000000".equals(otherLegAni)){ logicalDirection=callDirection; } String thisDn = event.get("variable_effective_caller_id_number");//当前分机 String otherDn = event.get("Caller-Caller-ID-Number");//主叫 String answerState = event.get("Answer-State");//话务状态->ringing String switchName = event.get("FreeSWITCH-Switchname"); String ani = event.get("Caller-Caller-ID-Number"); String dnis = event.get("Caller-Callee-ID-Number"); logger.info("【Fs EsEvent】->>>> onEventReleased EsEvent callUuid:{},eventDate:{}, logicalDirection:{}, thisDn:{},otherDn:{},answerState:{},switchName:{}", callUuid, eventDate, logicalDirection, thisDn, otherDn, answerState, switchName); Integer referenceId = Integer.valueOf(event.get("Event-Sequence"));

  •  websocket前端收到的事件

{
    "agentId": "21009",
    "ani": "15910979999",
    "callType": "inbound",
    "callUuid": "25f30ba4-223e-442c-92b8-2315e8a62c82",
    "calleder": "1000",
    "caller": "15910979999",
    "connId": "25f30ba4-223e-442c-92b8-2315e8a62c82",
    "dnis": "1000",
    "eventType": "EVENT_RELEASED",
    "mediaType": "voice",
    "messageType": "VoiceCallStateChangeMessage",
    "referenceId": 47934,
    "sessionId": "079dc84e-a643-4dd7-86fa-d9a991008c08",
    "thisDn": "1000"
}

2.CHANNEL_HANGUP_COMPLETE事件

CHANNEL_HANGUP_COMPLETE

CHANNEL_HANGUP_COMPLETE example  展开源码 

RECV EVENT

Event-Name: CHANNEL_HANGUP_COMPLETE

Core-UUID: 9b0de0b8-f55e-40d8-a2bd-179310b53493

FreeSWITCH-Hostname: myhost                    

FreeSWITCH-IPv4: 192.168.0.2                   

FreeSWITCH-IPv6: ::1                           

Event-Date-Local: 2009-10-09 20:08:26          

Event-Date-GMT: Sat, 10 Oct 2009 00:08:26 GMT  

Event-Date-Timestamp: 1255133306952270         

Event-Calling-File: switch_core_state_machine.c

Event-Calling-Function: switch_core_session_hangup_state

Event-Calling-Line-Number: 503                          

Hangup-Cause: NORMAL_CLEARING                           

Channel-State: CS_HANGUP                                

Channel-State-Number: 10                                

Channel-Name: sofia/internal/1000@192.168.0.2           

Unique-ID: e5a82e39-6dc1-4d7d-a300-aa9cd4284073         

Call-Direction: inbound                                 

Presence-Call-Direction: inbound                        

Answer-State: answered                                  

Channel-Read-Codec-Name: GSM                            

Channel-Read-Codec-Rate: 8000                           

Channel-Write-Codec-Name: GSM                           

Channel-Write-Codec-Rate: 8000                          

Caller-Username: 1000                                   

Caller-Dialplan: XML                                    

Caller-Caller-ID-Name: 1000                             

Caller-Caller-ID-Number: 1000                           

Caller-Network-Addr: 192.168.0.104                      

Caller-Destination-Number: 3030                         

Caller-Unique-ID: e5a82e39-6dc1-4d7d-a300-aa9cd4284073  

Caller-Source: mod_sofia                                

Caller-Context: default                                 

Caller-Channel-Name: sofia/internal/1000@192.168.0.2    

Caller-Profile-Index: 1                                 

Caller-Profile-Created-Time: 1255133286498223           

Caller-Channel-Created-Time: 1255133286498223           

Caller-Channel-Answered-Time: 1255133286504829          

Caller-Channel-Progress-Time: 0                         

Caller-Channel-Progress-Media-Time: 0                   

Caller-Channel-Hangup-Time: 1255133306952270            

Caller-Channel-Transfer-Time: 0                         

Caller-Screen-Bit: true                                 

Caller-Privacy-Hide-Name: false                         

Caller-Privacy-Hide-Number: false                       

variable_sip_received_ip: 192.168.0.104                 

variable_sip_received_port: 5060                        

variable_sip_via_protocol: udp                          

variable_sip_authorized: true                           

variable_sip_number_alias: 1000                         

variable_sip_auth_username: 1000                        

variable_sip_auth_realm: 192.168.0.2                    

variable_number_alias: 1000                             

variable_user_name: 1000                                

variable_domain_name: 192.168.0.2                       

variable_toll_allow: domestic,international,local       

variable_accountcode: 1000                              

variable_user_context: default                          

variable_effective_caller_id_name: Extension 1000       

variable_effective_caller_id_number: 1000               

variable_outbound_caller_id_name: FreeSWITCH            

variable_outbound_caller_id_number: 0000000000          

variable_callgroup: techsupport                         

variable_record_stereo: true                            

variable_default_gateway: example.com                   

variable_default_areacode: 918                          

variable_transfer_fallback_extension: operator          

variable_sip_from_params: transport=UDP                 

variable_sip_from_user: 1000                            

variable_sip_from_uri: 1000@192.168.0.2                 

variable_sip_from_host: 192.168.0.2                     

variable_sip_from_user_stripped: 1000                   

variable_sip_from_tag: 7bae8202                         

variable_sofia_profile_name: internal                   

variable_sip_req_params: transport=UDP                  

variable_sip_req_user: 3030                             

variable_sip_req_uri: 3030@192.168.0.2                  

variable_sip_req_host: 192.168.0.2                      

variable_sip_to_params: transport=UDP                   

variable_sip_to_user: 3030                              

variable_sip_to_uri: 3030@192.168.0.2                   

variable_sip_to_host: 192.168.0.2                       

variable_sip_contact_params: transport=UDP              

variable_sip_contact_user: 1000                         

variable_sip_contact_port: 60780                        

variable_sip_contact_uri: 1000@190.52.138.225:60780     

variable_sip_contact_host: 190.52.138.225               

variable_channel_name: sofia/internal/1000@192.168.0.2  

variable_sip_call_id: ODZhNDk5YzlmZDg3YTExOWU4NDU3NmM2ZmI1MzFmNDU.

variable_sip_via_host: 190.52.138.225                             

variable_sip_via_port: 60780                                      

variable_sip_via_rport: 5060                                      

variable_max_forwards: 70                                         

variable_presence_id: 1000@192.168.0.2                            

variable_switch_r_sdp: v=0                                        

o=Z 0 0 IN IP4 190.52.138.225                                     

s=Z                                                               

c=IN IP4 190.52.138.225                                           

t=0 0                                                             

m=audio 60790 RTP/AVP 3 110 98 8 0 101                            

a=rtpmap:3 GSM/8000                                               

a=rtpmap:110 speex/8000                                           

a=rtpmap:98 iLBC/8000                                             

a=fmtp:98 mode=30                                                 

a=rtpmap:8 PCMA/8000                                              

a=rtpmap:0 PCMU/8000                                              

a=rtpmap:101 telephone-event/8000                                 

a=fmtp:101 0-15                                                   

variable_remote_media_ip: 190.52.138.225

variable_remote_media_port: 60790       

variable_write_codec: GSM               

variable_write_rate: 8000               

variable_local_media_ip: 192.168.0.2    

variable_local_media_port: 19878        

variable_endpoint_disposition: ANSWER   

variable_current_application_data: $1-192.168.0.2@default

variable_current_application: conference                 

variable_conference_name: $1-192.168.0.2                 

variable_sip_term_status: 200                            

variable_sip_term_cause: 16                              

variable_sip_user_agent: Zoiper rev.4688                 

variable_sip_hangup_disposition: recv_bye                

variable_read_codec: GSM                                 

variable_read_rate: 8000                                 

variable_hangup_cause: NORMAL_CLEARING                   

variable_hangup_cause_q850: 16                           

variable_digits_dialed: none                             

variable_start_stamp: 2009-10-09 20:08:06                

variable_profile_start_stamp: 2009-10-09 20:08:06        

variable_answer_stamp: 2009-10-09 20:08:06               

variable_end_stamp: 2009-10-09 20:08:26                  

variable_start_epoch: 1255133286                         

variable_start_uepoch: 1255133286498223                  

variable_profile_start_epoch: 1255133286                 

variable_profile_start_uepoch: 1255133286498223          

variable_answer_epoch: 1255133286                        

variable_answer_uepoch: 1255133286504829                 

variable_progress_epoch: 0                               

variable_progress_uepoch: 0                              

variable_progress_media_epoch: 0                         

variable_progress_media_uepoch: 0                        

variable_end_epoch: 1255133306                           

variable_end_uepoch: 1255133306952270                    

variable_last_app: conference                            

variable_last_arg: $1-192.168.0.2@default                

variable_caller_id: "1000" <1000>                        

variable_duration: 20                                    

variable_billsec: 20                                     

variable_progresssec: 0                                  

variable_answersec: 0                                    

variable_progress_mediasec: 0                            

variable_flow_billsec: 20                                

variable_mduration: 20454                                

variable_billmsec: 20448                                 

variable_progressmsec: 0                                 

variable_answermsec: 6                                   

variable_progress_mediamsec: 0                           

variable_flow_billmsec: 20454                            

variable_uduration: 20454047                             

variable_billusec: 20447441                              

variable_progressusec: 0                                 

variable_answerusec: 6606                                

variable_progress_mediausec: 0                           

variable_flow_billusec: 20454047                         

variable_rtp_audio_in_raw_bytes: 45765                   

variable_rtp_audio_in_media_bytes: 45630                 

variable_rtp_audio_in_packet_count: 1017                 

variable_rtp_audio_in_media_packet_count: 1014           

variable_rtp_audio_in_skip_packet_count: 8               

variable_rtp_audio_in_jb_packet_count: 0                 

variable_rtp_audio_in_dtmf_packet_count: 0               

variable_rtp_audio_in_cng_packet_count: 0                

variable_rtp_audio_in_flush_packet_count: 0              

variable_rtp_audio_out_raw_bytes: 44055                  

variable_rtp_audio_out_media_bytes: 44055                

variable_rtp_audio_out_packet_count: 979                 

variable_rtp_audio_out_media_packet_count: 979           

variable_rtp_audio_out_skip_packet_count: 0              

variable_rtp_audio_out_dtmf_packet_count: 0              

variable_rtp_audio_out_cng_packet_count: 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/155881.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue2 mixin的方式 大屏适配(缩放居中的方式)

使用要求&#xff1a;指定容器的 id 为 bigScreenContainer 一、效果图 不管你的屏幕多大都会根据设计稿 1920*1080 进行缩放 图一&#xff1a;缩小的效果 图二&#xff1a;放大的效果 二、使用方式 <template><div id"bigScreenContainer" ref"big…

【Proteus仿真】【Arduino单片机】HC05蓝牙通信

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶、HC05蓝牙传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示蓝牙接收数据。 二、软件设计 /* 作者…

axios升级依赖版本后报错SyntaxError: Cannot use import statement outside a module

Axios构建为ES模块&#xff0c;而不是在Node中运行时的CommonJs。Jest的问题是它在Node中运行代码。这就是为什么告诉Jest转换Axios有效的原因。 Axios SDK附带了一个用于Node env的内置CommonJs文件。因此&#xff0c;我们可以通过将以下内容添加到您的package.json来修复它&a…

微服务架构之路7,Nacos配置中心的Pull原理,附源码

目录 一、本地配置二、配置中心1、以Nacos为例&#xff1a;2、Pull模式3、也可以通过Nacos实现注册中心 三、配置中心提供了哪些功能四、如何操作配置中心1、配置注册2、配置反注册3、配置查看4、配置变更订阅 五、主流的微服务注册中心有哪些&#xff0c;如何选择&#xff1f;…

C# 图解教程 第5版 —— 第15章 事件

文章目录 15.1 发布者和订阅者15.2 源代码组件概览15.3 声明事件15.4 订阅事件15.5 触发事件15.6 标准事件的用法15.6.1 通过扩展 EventArgs 来传递数据15.6.2 移除事件处理程序 15.7 事件访问器 15.1 发布者和订阅者 ​ 发布者 / 订阅者模式&#xff1a;发布者定义了一系列事…

Transformer

1. 整体架构 2. Encoder 1&#xff09;输入部分&#xff1a;Embeding 位置编码 位置编码没搞懂

小程序转换工具—Antmove 使用教学

自从微信小程序问世以后&#xff0c;字节、阿里、百度巨头们都各自搞各自的小程序平台&#xff0c;各有各的技术标准。基础技术都大差不差&#xff0c;但就是没法统一。搞得我们这些对接各平台的程序猿们苦不堪言。 虽说uniapp、Taro、Mpvue、Weex、Flutter都支持跨平台小程序…

LeetCode | 232. 用栈实现队列

​ LeetCode | 232. 用栈实现队列 OJ链接 解题思路&#xff1a; 此题可以用两个栈实现&#xff0c;一个栈进行入队操作&#xff0c;另一个栈进行出队操作出队操作&#xff1a; 当出队的栈不为空是&#xff0c;直接进行出栈操作&#xff0c;如果为空&#xff0c;需要把入队的…

HarmonyOS 实战项目

引言 本章将介绍如何在 HarmonyOS 上进行实际项目开发。我们将从项目需求分析开始&#xff0c;逐步完成项目的设计、开发、测试和上线过程。 目录 项目需求分析项目设计项目开发项目测试项目上线总结 1. 项目需求分析 项目需求分析是项目开发的关键阶段之一&#xff0c;它…

C#,数值计算——插值和外推,Base_interp的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Abstract base class used by all interpolation routines in this chapter. /// Only the routine interp is called directly by the user. /// </summary> pu…

Digicert证书:您的网络安全守护神

在当今数字化的世界中&#xff0c;网络安全已经成为每一个企业和个人必须面对的问题。而Digicert品牌证书&#xff0c;就是您网络安全的最佳选择。它不仅具有强大的安全性和稳定性&#xff0c;还能广泛应用于各种场景&#xff0c;为您提供全方位的保护。 首先&#xff0c;我们要…

Paypal发布公开信,三月已过,PYUSD发展如何?

2023年8月8日&#xff0c;美国支付巨头Paypal正式宣布推出其稳定币PYUSD&#xff0c;成为美国传统大型金融机构发行稳定币的首家企业。 当时&#xff0c;正值美国SEC与加密交易所Coinbase、Binance的诉讼白热化&#xff0c;Paxos被迫停止发行BUSD的阶段&#xff0c;在此背景下&…

计算机网络———ipv6简解

文章目录 1.前言&#xff1a;2. ipv6简单分析&#xff1a;2.1.地址长度对比2.2. ipv6包头分析2.3. ipv6地址的压缩表示&#xff1a;2.3. NDP&#xff1a;2.4. ipv6地址动态分配&#xff1a; 1.前言&#xff1a; 因特网地址分配组织)宣布将其最2011年2月3日&#xff0c;IANA (In…

从0开始学习JavaScript--JavaScript 循环与迭代详解

JavaScript中的循环和迭代是编写高效和灵活代码的关键。循环用于重复执行一段代码&#xff0c;而迭代则用于遍历数据结构。本文将深入研究JavaScript中常见的循环结构和迭代方法&#xff0c;并通过丰富的示例代码来帮助读者更好地理解和运用这些概念。 基本的for循环 for循环…

【微软技术栈】C#.NET 内存映射文件

本文内容 进程、视图和管理内存使用内存映射文件编程示例 内存映射文件包含虚拟内存中文件的内容。 借助文件和内存空间之间的这种映射&#xff0c;应用&#xff08;包括多个进程&#xff09;可以直接对内存执行读取和写入操作&#xff0c;从而修改文件。 可以使用托管代码访…

前端404页面的制作

1、背景 前端开发经常遇到输入路径不存在的问题&#xff0c;为此&#xff0c;把之前项目的404拿出来供大家参考。代码很简单&#xff0c;适合新手入手&#xff0c;效果如下&#xff1a; 2、代码引用的是element-plus框架 <template><div><el-result icon"…

String字符串性能优化的几种方案

原创/朱季谦 String字符串是系统里最常用的类型之一&#xff0c;在系统中占据了很大的内存&#xff0c;因此&#xff0c;高效地使用字符串&#xff0c;对系统的性能有较好的提升。 针对字符串的优化&#xff0c;我在工作与学习过程总结了以下三种方案作分享&#xff1a; 一.优…

linux虚拟机环境快速搭建redis5.x版本的主从集群总结

原创/朱季谦 我在阿里云服务器上曾参与过公司redis集群的搭建&#xff0c;但时间久了&#xff0c;都快忘记当时的搭建过程了&#xff0c;故而决定在虚拟机centOS 7的环境&#xff0c;自行搭建一套redis5.x版本的集群&#xff0c;该版本集群的搭建比较方便&#xff0c;不用再像…

上海亚商投顾:沪指低开低走 抖音概念股逆势爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整&#xff0c;深成指跌超1%&#xff0c;创业板指跌超1.8%。抖音概念股逆势爆发&#xff0c;佳…

Codewhisperer 使用评价

最近亚⻢逊推出了一款基于机器学习的 AI 编程助手 Amazon CodeWhisperer&#xff0c;可以实时提供代码建议。在编写代码时&#xff0c;它会自动根据现有的代码和注释给出建议。Amazon CodeWhisperer 与GitHub Copilot类似&#xff0c;主要的功能有: 代码补全注释和文档补全代码…