• [传感器适配] 激活app失败
    激活mcu上的app 显示失败:错误码是-1215按手册上的要求 在json文件里添加了两个service:{    "logging" :    {        "level" : "warning",        "console" : "false",        "file" : { "enable" : "false", "path" : "/var/log/vsomeip.log" },        "syslog": {          "enable" : "true",          "ident" : "someipd"        },        "dlt" : "false"    },    "unicast" : "192.168.1.6",    "routing" : "someipd",    "netmask" : "255.255.255.0",        "applications" :    [        {            "name" : "someipd",            "id" : "0x1343"        }    ],    "services" :    [        {            "service" : "0xb0",            "instance" : "1",            "unreliable" : "7000",            "events" : [ {              "event" : "5001",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "5000",              "is_field" : "false",              "is_reliable" : "false"            } ],            "eventgroups" : [ {              "eventgroup" : "1",              "events" : [ "5001", "5000" ]            } ]        },        {            "service" : "0x3457",            "instance" : "4007",            "unreliable" : "7007",            "events" : [ {              "event" : "5001",              "is_field" : "false",              "is_reliable" : "true"            } ],            "eventgroups" : [ {              "eventgroup" : "1",              "events" : [ "5001" ]            } ]        },        {            "service" : "0x3457",            "instance" : "4009",            "unreliable" : "7009",            "events" : [ {              "event" : "5001",              "is_field" : "false",              "is_reliable" : "true"            } ],            "eventgroups" : [ {              "eventgroup" : "1",              "events" : [ "5001" ]            } ]        },        {            "service" : "0xb1",            "instance" : "5",            "unreliable" : "7101",            "events" : [ {              "event" : "5000",              "is_field" : "false",              "is_reliable" : "false"            } ],            "eventgroups" : [ {              "eventgroup" : "2",              "events" : [ "5000" ]            } ]        },                {            "service" : "0x10",            "instance" : "2",            "unreliable" : "6000",            "events" : [ {              "event" : "32769",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32772",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32776",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32775",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32770",              "is_field" : "false",              "is_reliable" : "false"            } ],            "eventgroups" : [ {              "eventgroup" : "1",              "events" : [ "32769", "32772", "32776", "32770" ]            }, {              "eventgroup" : "2",              "events" : [ "32775" ]            } ]        },        {            "service" : "0x10",            "instance" : "1",            "unreliable" : "6000",            "events" : [ {              "event" : "32769",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32772",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32776",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32775",              "is_field" : "false",              "is_reliable" : "false"            }, {              "event" : "32770",              "is_field" : "false",              "is_reliable" : "false"            } ],            "eventgroups" : [ {              "eventgroup" : "1",              "events" : [ "32769", "32772", "32776", "32770" ]            }, {              "eventgroup" : "2",              "events" : [ "32775" ]            } ]        },                {              "service" : "0xd1",              "instance" : "1",              "unreliable" : "6000",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "2",              "unreliable" : "6001",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "3",              "unreliable" : "6002",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "4",              "unreliable" : "6003",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "5",              "unreliable" : "6004",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "6",              "unreliable" : "6005",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "7",              "unreliable" : "6006",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "8",              "unreliable" : "6007",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "9",              "unreliable" : "6008",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "10",              "unreliable" : "6009",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "11",              "unreliable" : "6010",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "12",              "unreliable" : "6011",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "1",              "unreliable" : "6000",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "2",              "unreliable" : "6001",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "3",              "unreliable" : "6002",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "4",              "unreliable" : "6003",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "5",              "unreliable" : "6004",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "6",              "unreliable" : "6005",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "7",              "unreliable" : "6006",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "8",              "unreliable" : "6007",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "9",              "unreliable" : "6008",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "10",              "unreliable" : "6009",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "11",              "unreliable" : "6010",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {              "service" : "0xd1",              "instance" : "12",              "unreliable" : "6011",              "events" : [ {                 "event" : "32769",                 "is_field" : "false",                 "is_reliable" : "false"              } ],              "eventgroups" : [ {              "eventgroup" : "16",              "events" : [ "32769" ]             } ]        },        {            "service" : "0x120",            "instance" : "192",            "unreliable" : "5001",            "eventgroups" : [ ]        },              {            "service" : "0xd004",            "instance" : "1",            "unreliable" : "53252",            "events" : [                {                    "event" : "32769",                    "is_field" : "false",                    "is_reliable" : "false"                },                {                    "event" : "32770",                    "is_field" : "false",                    "is_reliable" : "false"                }            ],            "eventgroups" : [                {                    "eventgroup" : "1",                    "events" : [ "32769", "32770" ]                }            ]        },        {            "service" : "0xd005",            "instance" : "1",            "unreliable" : "53253",            "events" : [            {                "event" : "32769",                "is_field" : "false",                "is_reliable" : "false"            },            {              "event" : "32770",              "is_field" : "false",              "is_reliable" : "false"            }],            "eventgroups" : [{            "eventgroup" : "1",            "events" : [ "32769", "32770" ]            }]        }    ],    "clients": [        {            "service": "208",            "instance": "1",            "unreliable": [              "6101"            ]        },        {            "service": "208",            "instance": "2",            "unreliable": [              "6102"            ]        },        {            "service": "208",            "instance": "3",            "unreliable": [              "6103"            ]        },        {            "service": "208",            "instance": "4",            "unreliable": [              "6104"            ]        },        {            "service": "208",            "instance": "5",            "unreliable": [              "6105"            ]        },        {            "service": "208",            "instance": "6",            "unreliable": [              "6106"            ]        },        {            "service": "208",            "instance": "7",            "unreliable": [              "6107"            ]        },        {            "service": "208",            "instance": "8",            "unreliable": [              "6108"            ]        },        {            "service": "208",            "instance": "9",            "unreliable": [              "6109"            ]        },        {            "service": "208",            "instance": "10",            "unreliable": [              "6110"            ]        },        {            "service": "208",            "instance": "11",            "unreliable": [              "6111"            ]        },        {            "service": "208",            "instance": "12",            "unreliable": [              "6112"            ]        },        {            "service": "211",            "instance": "1",            "unreliable": [            "6201"            ]        }    ],    "service-discovery" :    {        "enable" : "true",        "multicast" : "239.192.255.251",        "port" : "30491",        "protocol" : "udp",        "repetitions_max" : "3",        "cyclic_offer_delay" : "2000",        "repetitions_base_delay" : "200",        "request_response_delay" : "1500",        "initial_delay_min" : "10",        "initial_delay_max" : "100",        "ttl" : "10"    }}host侧mcu_customize__abstract的输出:请问是哪里配置有问题吗?
  • [技术干货] 《ONAP技术详解与应用实践》读书笔记26
    10.5 CVC的应用与展望CVC可以协调并加速运营商与供应商之间的交互,供应商可以通过CVC快速获取运营商的需求并测试,实现Devops。未来, CVC社区将提供一个Marketplace来管理所有的测试结果以及对应的xNF包,运营商也可以根据测试结果快速评估哪些供应商的产品满足其需求。10.5.1 供应商如何应用CVCVNFSDK提供了xNF的打包工具以及Marketplace。供应商可以通过使用打包工具生成自己的VNF或者PNF包。Marketplace可以触发VNFSDK的所有测试用例,并且提供对应的UI界面,以供用户进行上传、下载xNF包。CVC将提供两种方式供用户去使用:第一种是CVC社区认证的第三方实验室。xNF提供商只需要将自己的xNF包提供给第三方实验室,并明确自己产品的依赖,这样就可以通过第三方实验室进行测试,并输出最终xNF测试结果。另外一种方式是, xNF供应商可以自行下载CVC相关的工具以及测试用例集合,然后进行测试,获取测试报告,然后提交给认证Portal供CVC去Review并发布认证结果。通过快速的反馈测试结果以及获取运营商对于相关产品的诉求,供应商可以通过此工具快速构建自己xNF/NFVi的Devops。供应商通过提交其xNF/NFVi相关产品的测试结果,社区的Reviewer会评估其测试结果的正确性,最终社区会将该测试认证结果发布到Cvc官方页面上,以供更多的运营商获取产品信息。10.5.2运营商对CVC的应用CVC致力于加速运营商采购xNF产品的流程。运营商可以在CVC的官方认证Portal或者Marketplace上快速获取当前已经通过CVC认证的xNF产品列表以及具体的测试细节,用于评估自己的采购需求。运营商也可以通过定制自身的测试用例集来测试对应的xNF。运营商可以将此用例集集成到本地或者认证实验室中,应用到对应的测试中。在获取到相关供应商的xNF产品测试结果后,运营商也可以快速地从CVC Portal获取到相关的产品信息,以便后续安装部署到自己本地的环境进行进一步的使用。CVC未来会提供一个Portal用于CvC的一键式部署、用例设计与生成、测试用例集选择、用例集的执行和测试结果的呈现。10.5.3 CVC的未来展望1. CVC的中长期愿景社区将CVC测试分成三种,即Compliance Test, Validation Test,Petformance Test。其中, xNF Validation Test和Performance Test工作在社区尚未开始,属于长期目标。目前社区工作主要集中在xNF Compliance Test上。其中,Compliance Test:兼容性测试,此阶段为CVC的短期目标。测试xNF对于VNF Requirements, 3GPP/ETSI或者运营商特定要求的兼容性,如xNF包的结构(ETSISOL004), xNFD的节点定义是否符合标准(ETSI SOL001 )等。Validation Test:主要是xNF的生命周期测试(Lifecycle Managemnent Test),该阶段为CVC的中长期目标。如xNF的创建、删除、扩缩容、更新等,也包含xNE的功能测试,如IMS、 EPC网元是否满足3GPP定义的网元功能。针对NFVi,就是基于OpenStack、VMware, Kubernetes等不同平台的测试,如HA ( High availability) 测试。Performance Test:性能测试,即测试网元是否能满足对应运营商、标准等各方面的性能要求。同OPNFV原有的OVP 测试一样,CVC的测试流程也将与此类似,分成如下3步。CVC测试项实验室CVC委员会结果检视CVC测试结果发布2. CVC的Qualified Lab测试云服务模式随着CVC认证逐渐成为一种xNF人网的基本标准,提前取得CVC认证对于供应商变得越来越重要。基于此, CVC在考虑把认证从现在提供工具、用例的模式,逐渐发展为提供CVC认证云服务的Qualified Lab实验室模式。意义在于:对运营商来说,认证新的xNF将不需要本地搭建CVC测试认证环境。对于设备供应商而言, Qualified Lab将提供标准的验证环境和平台,不需要每次都和运营商进行多次认证用例的重新对齐,认证过程简单,用例更新及时,且认证通过的产品和版本可以在Qualified Lab中体现。作为一个平台, CVC Qualified Lab将架起运营商和设备供应商快速准入的桥梁。3. CVC的VNF在线市场(Marketplace)按照ONAP社区的构想,将会提供一个xNF Marketplace,通过CVC认证后的xNF将会以类似App的方式上传到Marketplace,运营商可以在Marketplace中试用通过认证的xNF,可以直接在线购买。这种模式使得xNF的升级更加灵活,比如整包更新、热补丁更新,更新过程更加简单,类似手机App的购买和升级体验。当然,这个过程需要一定时间,它有赖于升级方案和工具的逐步成熟,以及xNF容器化部署的成熟、License模式的成熟等。
  • [交流吐槽] 吐槽华为云会议app
    注册界面验证时,手机禁止截图,图形验证码验证失败后刷新需要改善创建企业后无法添加人员企业信息无法编辑摄像头可能会出现大小屏同框app端我的点击头像进去,部门、手机、邮箱、姓名等信息无法修改app端小窗口在其他app停留点开提示没有权限app端升级套餐没有资费信息app端无法禁音,手机最后一格音量被锁住app端部分页面不支持手机全面屏,需要点击右上角返回键app端邀请他人参会需要到会议详情里面去,不能在会议里面要求app端画面小窗会变成头像而不是视频app端视频画面延迟比较严重,晃动手机,停稳后还有延迟1、2秒联系他人,提示企业未购买外呼功能,请联系企业管理员。但企业无法编辑,也没有明确人员角色,更没有购买的链接和页面跳转。pc端通话记录-最近通话里面没有记录pc端和app端的白板纪要无法添加内容pc端邀请没有二维码,需要手动复制会议信息pc端收藏的联系人点击编辑用户,再点击新增用户,还是之前编辑用户的界面,不是新增用户的界面pc端收藏的联系人信息进行编辑,未保存再点击其他任意功能会提示“联系人为保存,是否存为草稿?”,确定存为草稿后,再回到联系人编辑页面,草稿信息还在,再次未保存点击其他任意功能,不会在提示“联系人为保存,是否存为草稿?”再回到联系人编辑页面,之前编辑的草稿信息没了
  • [技术研讨] 华为云会议已支持App ID鉴权,二次集成时不需要再做账号帮定
    https://support.huaweicloud.com/devg-meeting/toctopics/zh-cn_topic_0270741168.html
  • [热门活动] 【用户案例】打造用车综合管理平台,享受优质用车体验
    成为智能交通拥有丰富政企车队管理经验及车队管理平台开发能力,以透明化高效管理,降低了我们的用车运行成本,带来了便捷的用车体验。—— 广西南宁电信 一、业务痛点为了方便员工因公出行,政府和企业会为其配置公务用车,以保障政府和企业运营活动的正常开展,提高处理公事的效率。但实际使用中,公车私用、虚报加班等现象层出不穷,公务车运行管理成本偏高。广西南宁电信亦是如此。1.      实际使用和公车私用的情况,难以区分管理;2.      公务车利用率低,存在难以调度及车辆闲置的情况;3.      车辆使用费用报销,各种桥路费、加油费、维修保养费繁杂,传统手工记账方式工作量重,且缺少有效的审批凭据,管理费用偏高;4.      车辆使用寿命缩短,由于驾驶技术、驾驶习惯、车辆保护意识差、使用频率大等因素影响,导致车辆行驶6-8年就提前退役;5.      缺少科学可行的公务车管理系统与有效全面的管理方式,管理人员在管理中缺少数据的支撑,难以规范用车各个环节。 二、解决方案为建立长效机制,按照中央车改办《关于进一步加强地方公务用车平台建设的通知》的要求,广西南宁电信就建设“智慧”公务用车综合管理平台项目对外招标,华为云市场合作伙伴成为智能交通凭借专业的软件平台设计研发能力正式中标。成为智能交通为中国电信定制开发政企出行全新调度平台及APP,结合华为云的弹性云服务器、镜像服务、云数据库RDS等服务,对行驶数据、驾驶员、车辆资产进行三重管理。1、精准管理行驶数据。通过车载智能终端对车辆的位置、状况和驾驶数据进行统计和分析,方便车队管理者实时掌握车辆运行状况,管理者可以实时查看车辆的地理定位、形势行驶轨迹、运行区域等数据,对公务车用车进行监控,规范车辆使用。2、科学管理驾驶员。利用成为智能交通自主研发的驾驶评分模型,根据驾驶员的驾驶行为和驾驶习惯记录,生成个人驾驶得分,结合违章数据,对驾驶管理安全预警。同时通过系统反馈数据,督促驾驶员合理安全驾驶,以此建立奖励机制,调动驾驶员的积极性,增强安全意识,减少事故的发生。3、优化管理车辆资产。不良的驾驶行为加速车辆的损耗速度,导致车辆提前报废。云平台通过发送车辆维修保养提示、不良驾驶行为统计违规罚款推送等,让车辆的使用状况明了清晰,管理者据此制定相应的管理办法,减少车辆损耗和不必要的费用支出;同时掌握车辆使用情况,改变车辆的使用属性或者进行车辆资产处置,减少闲置车辆资源的浪费。 三、企业受益1、完善的车辆管理体系。根据广西南宁电信管理需求,定制以“云平台+APP+车载智能终端”为依托的解决方案,实现公司上下互联互通,帮助用户形成完整的公务用车综合管理体系;2、透明化高效管理,降低用车运行成本。通过云平台完成了实时的公务车监控管理,根据平台数据筛选各部门车辆使用率,进行合理资源分配,提高了管理效益;3、更便捷的用车体验。用车人通过APP即可完成车辆用车,包括用车申请、审批、支付、评价等;4、促进电信生态链的发展。成为智能交通所开发的车队管理云平台以及车载智能终端,通过电信物联网卡的联接,成功进入电信生态链,促进电信天翼云发展及推广。 文中提到的商品:成翼行车队管理服务(点击可查看详情)上严选商城,挑选更多云上精品!【华为云云市场,助您上云无忧】
  • [技术干货] 升级公告:App Engine 1.2.12.7补丁版本升级
    各位开发者们:      智慧园区业务运营团队积极听取开发者声音,深入了解开发者痛点,致力于为开发者传达需求,提升开发体验。园区业务开发平台App Engine将于2020-08-12 00:00~01:00进行 1.2.12.7补丁版本升级。本次升级不影响业务正常使用,请知悉!主要更新内容如下:体验优化优化属性的国际化体验,支持直接在输入框输入内容并自动生成key;优化高级页面加载的资源路径,平台资源使用相对路径读取;优化多语言组件,新增分类属性,支持业务配置;优化文件预览,支持文件名中带空格;优化日志跟踪,新增日志控制台;修复其他已知问题。兼容性说明  下拉级联框长度增加设置限制,针对运行态样式的修改需要升级开发态和运行态。以上详细更新内容也可登陆App Engine查看站内升级公告智慧园区业务运营团队
  • [技术干货] 【转载】Web 开发必须掌握的三个技术:Token、Cookie、Session
    在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session。CookieCookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。Cookie存储的数据量有限,且都是保存在客户端浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用Cookie实际上只能存储一小段的文本信息。例如:登录网站,今输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是Cookie。SessionSession是另一种记录客户状态的机制,它是在服务端保存的一个数据结构(主要存储的的SessionID和Session内容,同时也包含了很多自定义的内容如:用户基础信息、权限信息、用户机构信息、固定变量等),这个数据可以保存在集群、数据库、文件中,用于跟踪用户的状态。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。用户第一次登录后,浏览器会将用户信息发送给服务器,服务器会为该用户创建一个SessionId,并在响应内容(Cookie)中将该SessionId一并返回给浏览器,浏览器将这些数据保存在本地。当用户再次发送请求时,浏览器会自动的把上次请求存储的Cookie数据自动的携带给服务器。服务器接收到请求信息后,会通过浏览器请求的数据中的SessionId判断当前是哪个用户,然后根据SessionId在Session库中获取用户的Session数据返回给浏览器。例如:购物车,添加了商品之后客户端处可以知道添加了哪些商品,而服务器端如何判别呢,所以也需要存储一些信息就用到了Session。如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。TokenHTTP请求都是以无状态的形式对接。即HTTP服务器不知道本次请求和上一次请求是否有关联。所以就有了Session的引入,即服务端和客户端都保存一段文本,客户端每次发起请求都带着,这样服务器就知道客户端是否发起过请求。这样,就导致客户端频繁向服务端发出请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否。而Session的存储是需要空间的,频繁的查询数据库给服务器造成很大的压力。在这种情况下,Token应用而生。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌。当客户端第一次访问服务端,服务端会根据传过来的唯一标识userId,运用一些算法,并加上密钥,生成一个Token,然后通过BASE64编码一下之后将这个Token返回给客户端,客户端将Token保存起来(可以通过数据库或文件形式保存本地)。下次请求时,客户端只需要带上Token,服务器收到请求后,会用相同的算法和密钥去验证Token。最简单的Token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由Token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接Token请求服务器)。使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:客户端使用用户名跟密码请求登录服务端收到请求,去验证用户名与密码验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者数据库里客户端每次向服务端请求资源的时候需要带着服务端签发的 Token服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为Token,存储到服务器中,并返回Token到APP,以后APP请求时,凡是需要验证的地方都要带上该Token,然后服务器端验证Token,成功返回所需要的结果,失败返回错误信息,让他重新登录。对于同一个APP同一个手机当前只有一个Token;手机APP会存储一个当前有效的Token。其中服务器上Token设置一个有效期,每次APP请求的时候都验证Token和有效期。下面这个例子,可以很好的理解:『给我来份煎饼(token我是你对面摊卖烤冷面的,scope赊账)』『好』『鸡蛋(token我是你对面摊卖烤冷面的,scope赊账)』『好』『再加个鸡蛋(token我是你对面摊卖烤冷面的,scope赊账)』『好』最终得到一份普通煎饼,外加两个鸡蛋……如果服务器重启或者因为其他理由,服务器端已保存token丢失。那么用户需 要重新登录和认证。『给我来份煎饼(token我是你对面摊卖烤冷面的)』『那个……我没见过你』
  • [技术干货] Web 开发必须掌握的三个技术:Token、Cookie、Session
    在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session。CookieCookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。Cookie存储的数据量有限,且都是保存在客户端浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用Cookie实际上只能存储一小段的文本信息。例如:登录网站,今输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是Cookie。SessionSession是另一种记录客户状态的机制,它是在服务端保存的一个数据结构(主要存储的的SessionID和Session内容,同时也包含了很多自定义的内容如:用户基础信息、权限信息、用户机构信息、固定变量等),这个数据可以保存在集群、数据库、文件中,用于跟踪用户的状态。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。用户第一次登录后,浏览器会将用户信息发送给服务器,服务器会为该用户创建一个SessionId,并在响应内容(Cookie)中将该SessionId一并返回给浏览器,浏览器将这些数据保存在本地。当用户再次发送请求时,浏览器会自动的把上次请求存储的Cookie数据自动的携带给服务器。服务器接收到请求信息后,会通过浏览器请求的数据中的SessionId判断当前是哪个用户,然后根据SessionId在Session库中获取用户的Session数据返回给浏览器。例如:购物车,添加了商品之后客户端处可以知道添加了哪些商品,而服务器端如何判别呢,所以也需要存储一些信息就用到了Session。如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。TokenHTTP请求都是以无状态的形式对接。即HTTP服务器不知道本次请求和上一次请求是否有关联。所以就有了Session的引入,即服务端和客户端都保存一段文本,客户端每次发起请求都带着,这样服务器就知道客户端是否发起过请求。这样,就导致客户端频繁向服务端发出请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否。而Session的存储是需要空间的,频繁的查询数据库给服务器造成很大的压力。在这种情况下,Token应用而生。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌。当客户端第一次访问服务端,服务端会根据传过来的唯一标识userId,运用一些算法,并加上密钥,生成一个Token,然后通过BASE64编码一下之后将这个Token返回给客户端,客户端将Token保存起来(可以通过数据库或文件形式保存本地)。下次请求时,客户端只需要带上Token,服务器收到请求后,会用相同的算法和密钥去验证Token。最简单的Token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由Token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接Token请求服务器)。使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:客户端使用用户名跟密码请求登录服务端收到请求,去验证用户名与密码验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者数据库里客户端每次向服务端请求资源的时候需要带着服务端签发的 Token服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为Token,存储到服务器中,并返回Token到APP,以后APP请求时,凡是需要验证的地方都要带上该Token,然后服务器端验证Token,成功返回所需要的结果,失败返回错误信息,让他重新登录。对于同一个APP同一个手机当前只有一个Token;手机APP会存储一个当前有效的Token。其中服务器上Token设置一个有效期,每次APP请求的时候都验证Token和有效期。下面这个例子,可以很好的理解:『给我来份煎饼(token我是你对面摊卖烤冷面的,scope赊账)』『好』『鸡蛋(token我是你对面摊卖烤冷面的,scope赊账)』『好』『再加个鸡蛋(token我是你对面摊卖烤冷面的,scope赊账)』『好』最终得到一份普通煎饼,外加两个鸡蛋……如果服务器重启或者因为其他理由,服务器端已保存token丢失。那么用户需 要重新登录和认证。『给我来份煎饼(token我是你对面摊卖烤冷面的)』『那个……我没见过你』
  • [技术干货] EdgeGallery开源平台简介3
    MEP平台特性简介通过MEP平台,应用开发者可以无需编码集成MEP平台。即服务注册,服务治理,服务通信等能力都可以通过MEP平台来实现。如果应用开发者需要使用MEP平台的开放能力,APP可以直接调用MEP平台的接口而无需新增多种配置。 客户价值● 通过MEP平台,应用无需编码集成上车到MEP平台。● 无需额外配置,直接使用MEP平台即可以在Edge内路由调用MEP开放能力。 特性描述**化集成MEPa. 提供多种部署方式,微服务或者容器镜像b. APP无需开发代码,只需要少量配置APP自身信息,并将MEP平台与APP部署在同一个容器即可c. 提供服务注册/DNS/MEP平台内路由转发等能力d. APP自身可以使用任何技术实现,无需做过多改动,只需支持Restful接口调用即可开放架构推进MEP开放能力完善基于MEP平台与MEP,APP在与MEP集成后,可以将自身能力开放出来,供后续APP使用。
  • [技术干货] 升级公告:App Engine1.2.12.5补丁版本升级
    各位开发者们:      智慧园区业务运营团队积极听取开发者声音,深入了解开发者痛点,致力于为开发者传达需求,提升开发体验。园区业务开发平台App Engine将于北京时间 2020-07-04 00:00~00:30 进行 1.2.12.5补丁版本升级。本次升级不影响业务正常使用,请知悉!本次更新内容如下:体验优化优化编译能力,编译时可以校验标准页面和高级页面中引用的组件、资源的完整性;优化错误码,支持中英文一体创建、查看和修改,创建处增加语言提示项和跳转功能;优化Flow(服务编排)的Json结构体,新增支持嵌套能力;优化对象存储代理,支持一次获取多个对象的shareToken,以提升开发者应用的效率;优化脚本体验,在运行前自动保存并添加清除日志按钮;优化流跟踪器日志,增加了图元类型分类;优化批量导入字段的体验;优化控制台,sql编辑器中支持object和字段名的自动提示、大小写不敏感,兼容分号结尾,增加自动分页功能;优化小程序发布能力,支持手动输入appid;优化标准页面表格,表格中的悬浮文本可复制、数字组件最大最小值支持动态绑定;优化DMAX界面体验;优化支持Addon源码包迁移;修复其他已知问题。兼容性说明以下新版本改动无法导出到旧版环境中使用:Flow(服务编排)中嵌套的json结构体;新版本后打包的Rest Service;新的批量创建字段模板;新增组件属性的组件;新增分页加载属性的选项树组件;国际化的选项列表值。以上详细更新内容也可登陆App Engine查看站内升级公告智慧园区业务运营团队
  • [分享交流] 外媒:苹果冻结中国App Store上万款手游更新
    北京时间7月1日晚间消息,据国外媒体报道,为了遵守中国的相关规定,苹果公司冻结了中国App Store应用商店中上万款手机游戏的更新。此举可能给苹果造成最多8.79亿美元的销售损失。调研公司Sensor Tower数据显示,中国是苹果的最大App Store市场,年销售额为164亿美元,高于美国的154亿美元,其中大部分收入来自游戏。到目前为止,苹果一直允许用户从中国App Store下载游戏,但其中一些游戏尚未得到监管机构的正式许可。事实上,中国监管部门早已要求,所有付费或提供应用内购买的游戏,在发布前需要获得许可证。自2016年以来,主要的Android应用商店已经执行了这一规定。但在iPhone平台上,未经批准的游戏仍大行其道。苹果的这种做法,使得《侠盗猎车手》(Grand Theft Auto)等游戏得以在中国市场运营。直至今年2月份,苹果才告知中国的开发商和发行商,其iOS游戏从7月开始需要许可证才能继续运营。这一决定将结束当前的一种非官方做法:在等待监管机构批准的同时,允许游戏先行发行。由于预计苹果将改变规则,一些应用程序开发商已经停止为中国用户提供服务。例如,艺电(EA)发布了一份游戏内通知,告知《星球大战:英雄银河》(Star Wars:Galaxy of Heroes)的用户,预计其应用程序将被下架,同时将停止提供应用程序内购买。分析人士称,这意味着App Store在中国市场将面临更严格的监管。咨询服务公司AppinChina营销经理托德·库恩斯(Todd Kuhns)预计,此举可能给苹果造成最多8.79亿美元的销售损失。AppInChina还预计,中国App Store应用商店内大约有6万款付费或应用内购买游戏,其中至少1/3没有许可证。自2010年以来,中国监管机构仅发放了约4.3万张许可,2019年仅发放了1570张。分析人士称,苹果的这一新举措突显了中国监管部门对游戏的严格控制。出于对未成年人成瘾激增和攻击性内容传播的担忧,监管机构现在采取了更严格的审批程序。分析人士还称,像腾讯和网易这样的本土大公司,他们在开发新游戏时能够迅速响应相关要求,而一些小型开发商和发行商则缺乏足够的资源。
  • [融合视频] VMX的Fairplay集成时,APP报错向Fairplay下载CKC失败
    使用基线IOS APP测试VMX Fairplay,APP在向VMX请求license的时候,VMX返回报错设备不存在。经过VMX分析原因是请求URL中的deviceid字段拼写问题,应该是'deviceId'.请帮忙更新基线客户端。当前测试的基线IOS版本为202004271500,DMPPlayer版本为20.0.25.16
  • X Labs云展览APP手机版&VR版下载
    相关介绍:        本应用中的数字场景按照X Labs 5G ToC实验室进行建模,由X Labs虚拟主播小武进行引览指引并声情并茂地为大家讲解各个实验岛的解决方案。手机版本可以360度视角进行观看,VR版本可用手柄操作观看视角和观看位置,沉浸感更强,欢迎大家体验~~        手机版本下载链接: https://downloadapk.obs.cn-east-2.myhuaweicloud.com/CloudExhibition/VTuberForXLabs.apkVR版本下载链接:https://downloadapk.obs.cn-east-2.myhuaweicloud.com/CloudExhibition/VTuberXLabsVR3.apk
  • [技术干货] 相较于APP,初创企业为什么更加青睐网站?
    2020年第一季度国内经济受疫情影响较大,但仍有许多创业者,在疫情的危机下找到机遇,如医疗健康、在线教育、云游戏、云办公的爆发以及国内“新基建”的发展部署等,都让许多创业者嗅到了新的商业需求。据天眼查发布的《2020年第一季度全国企业大数据》资料显示,第一季度仍有超过322万家企业注册成立。但是,对于很多创业者来说,找到合适的创业项目只是第一步。企业成立之后,尤其是互联网企业,企业网站和APP都是作为企业在互联网上进行网络营销、产品推广和形象宣传的平台,大部分初创企业,在人员资金有限的情况下,都会先选择企业网站开发,这是为什么呢?01快速更新众所周知,用户使用APP大多数情况下都是需要通过手机应用商店下载,但APP上线应用商店要求却十分严格,经常被审批者驳回。无论是APP上线或是更新,企业都有遭遇审查导致的延迟和之后风险。同时,App用户必须下载安装包才能更新应用,因此许多客户使用的可能还是有bug或过时的版本。相比之下,网站的上线和更新则更加自由且迅速,开发人员可以在没有外部障碍、不用考虑外部意见的情况下改进产品。对网站做出的改动也可以立即体现在网站上,用户能够及时体验。而且在做出更新调整期间,也不会打扰到用户对网站的正常使用,对人员有限的初创企业来说,操作会更便捷。02获客成本低,推广更便捷通过观察用户使用习惯,可以发现,说服别人尝试新App的门槛要比网站高得多。共享网址很方便,网页也更容易显示在Google搜索页面,并且新用户不需要下载占内存空间的软件安装包。对于网站推广来说,企业可以根据SEO规则进行优化,将企业网站运营至搜索引擎关键词前列。对于用户来说,体验网站的难度会比体验APP低很多,无需通过下载这一步骤,打开网页就能直观地体验企业产品。03兼容性更高企业需要知道,建立网站并不意味着放弃手机端的用户,只是对于初创企业而言,更适合将资金技术集中在一个平台。而且,网站的兼容性很高,建立网站意味着不管用户使用的是手机、平板、台式机还是其他设备,都可以使用网站的功能。而APP端只适用于iOS或Android系统。04国际化浏览器可以自动翻译文本,因此网页开发人员不需要为吸引外国用户做太多额外的工作。网站可以免费地走向世界,这对于一个资金短缺的小团队很重要。本地App团队则需要研究如何翻译以及如何在国际市场上发布他们的应用。
  • [传感器适配] CAN配置和使用的几个问题
    问题1:CAN 配置成mcu循环发送can帧时默认消息改如何配置,比如我想配置成 01 02 03 04 05 06 07 08,在配置文件中该变量是一个8位变量,应该不能配置成这种形式问题2:CAN 在MCU循环发送中有没有超时机制之类的呢,比如当MCU3秒或者5秒不更新时恢复初始化值的发送,这样当APP杀死或挂掉后不会持续对车控发送加速信息问题3:CAN在循环发送中有没有应用程序超时的机制,我们发现若MDC上电后一段时间内如果没有启动APP下发CAN消息CAN消息会保持初始值不更新,重启/上电后立即下发消息下发后可以正常更新
总条数:642 到第 页
上滑加载中