首页 文章 精选 留言 我的

精选列表

搜索[HarmonyOS SDK],共10000篇文章
优秀的个人博客,低调大师

🎉 Socket.D 网络应用协议,v2.5.9 发布(已有 java, py, js SDK)

Socket.D 协议? Socket.D 是一个基于事件和语义消息流的网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript,node.js,python,android 语言环境可用。go,rust,c/c++,.net 正在开发中。 最近更新 (1) for Java 添加 静态 spi 加载方式(避免某些打包方案让 java spi 失效) 添加 新的每秒帧流量控制接口 TrafficLimiter 添加 Listener:onReply, onSend 方法,方便帧流量统计 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位 添加 SessionUtils 工具类 添加 Session::isActive() 添加 java-websocket 适配子协议验证(避免乱连) 添加 spring-websocket 适配子协议验证(避免乱连) 添加 BroadcastBroker 接口(提供类似 stomp 的体验) 添加 LoadBalancer:isActive 接口 添加 内存占比限制支持 添加 EntityMetas.META_X_UNLIMITED 添加 EntityMetas.META_X_HASH, 另 META_X_Hash 标为弃用 添加 Session::attrDel 接口 添加 ListenerWrapper 类,方便应用定制 优化 java-websocket 适配,增加 header 转移 优化 spring-websocket 适配,增加 header 转移 优化 java-websocket 适配,增加 setReuseAddr(true) 配置 修复 server.stop 后不能自动退出的进程问题 修复 session.close() 后不能自动退出的进程问题 smartsocket 升为 1.5.46 (2) for Python 优化 Session::send_alarm 申明,支持 alarm: str|Entity 添加 Listener:onReply, onSend 方法,方便帧流量统计 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位 添加 SessionUtils 工具类 添加 Session::isActive() 添加 BroadcastBroker 接口(提供类似 stomp 的体验) 添加 websocket 适配子协议验证(避免乱连) 添加 EntityMetas.META_X_UNLIMITED 优化 流的超时处理 调整 语言版本需求改为 3.10 修复 stream.on_reply 非异步调用出错的问题 (3) for JavaScript 添加 Listener:onReply, onSend 方法,方便帧流量统计 添加 FrameIoHandler 接口,强化 Processor 的帧输入输出强控地位 添加 SessionUtils 工具类 添加 Session::isActive() 添加 BroadcastBroker 接口(提供类似 stomp 的体验) 添加 websocket 适配子协议验证(避免乱连) 添加 EntityMetas.META_X_UNLIMITED 添加 提供者手动注册接口 调整 代码结构与 java,python 尽量保持相近 优化 SocketD.newEntity 与小程序的兼容性(小程不支持 File、Blob 类型) 修复 wechat 的环境识别问题 修复 在 ios/android 上检测 TextEncoder 出错的问题(2.3.10 出现的) 视频演示效果: for H5 https://www.bilibili.com/video/BV1ck4y197BV/ 演示源码 for UniAPP https://www.bilibili.com/video/BV1T94y1T7sp/ 演示源码 代码仓库: https://gitee.com/noear/socketd https://github.com/noear/socketd 官网: https://socketd.noear.org

优秀的个人博客,低调大师

🎉 Socket.D 网络应用协议,v2.4.14 发布(已有 java, py, js SDK)

Socket.D 协议? Socket.D 是一个网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript,node.js,python,android 语言环境可用。go,rust,c/c++,.net 正在开发中。 最近更新 优化 python 协议跨语言编码解兼容 优化 python 异步栈的日志记录 for Python Helloworld 演示 Server async def main(): server = await (SocketD.create_server("sd:ws") .listen(EventListener() .do_on_open(lambda s: #会话打开时 log.info(s.session_id()) ).do_on_message(lambda s, m: #收到任意消息时(方便做统一的日志打印) log.info(m.data_as_string()) ).do_on("/demo", lambda s, m: #收到"/demo"事件的消息时。如果是请求或订阅?则进行签复 (m.is_request() or m.is_subscribe()) and s.reply_end(m, StringEntity("And you too.")) )).start()) await asyncio.Future() if __name__ == "__main__": asyncio.run(main()) Client async def main(): #打开客户端会话,并监听(用 url 形式打开) session = await (SocketD.create_client("sd🇼🇸//127.0.0.1:8602/?token=1b0VsGusEkddgr3d") .open()) entity = StringEntity("Hello wrold!").meta_put("sender","noear") #发送 session.send("/demo", entity) #发送并请求(且,等待一个答复。否则超时异常) session.send_and_request("/demo", entity).then_reply(lambda reply: #打印 log.info(reply.data_as_string()) ).then_error(lambda error: log.error(error) ) #发送并订阅(且,接收零个或多个答复流) session.send_and_subscribe("/demo", entity).then_reply(lambda reply: #打印 log.info(reply.data_as_string()) or (reply.is_end() and log.info("the end!")) ) await asyncio.Future() if __name__ == "__main__": asyncio.run(main()) 视频演示效果: for H5 https://www.bilibili.com/video/BV1ck4y197BV/ 演示源码 for UniAPP https://www.bilibili.com/video/BV1T94y1T7sp/ 演示源码 代码仓库: https://gitee.com/noear/socketd https://github.com/noear/socketd 官网: https://socketd.noear.org

优秀的个人博客,低调大师

基于umeng官方php sdk v1.4,支持Laravel5以及Lumen5

安装 composer require zzl/umeng Laravel 5.* 配置 打开config目录下的app.php文件,找到provider,添加如下代码: 'provider' => [ Zzl\Umeng\UmengServiceProvider::class, ], 配置alias: 'aliases' => [ 'Umeng' => Zzl\Umeng\Facades\Umeng::class, ], 生成配置文件: php artisan vendor:publish 在配置文件umeng.php中填入appkey以及master_secret既可完成配置 在Lumen 5.*中配置 打开bootstrap目录下的app.php文件,注册provider: $app->register(Zzl\Umeng\UmengServiceProvider::class); 配置alias: class_alias('Zzl\Umeng\Facades\Umeng','Umeng'); 生成配置文件: php artisan vendor:publish 在配置文件umeng.php中填入appkey以及master_secret既可完成配置 用法 Android用法: use Umeng; $device_token = 'xxxx'; $predefined = array('ticker' => 'android ticker' ,...); $extraField = array(); //other extra filed Umeng::android()->sendUnicast($device_token,$predefined,$extraField); //单播 IOS用法: use Umeng; $device_token = 'xxxx'; $predefined = array('alert' => 'ios alert' ,...); $customField = array(); //other custom filed Umeng::ios()->sendUnicast($device_token,$predefined,$customField); //单播 Api 说明: Android API跟 IOS一样 sendBroadcast($predefined = [], $extraField = []); //广播 sendUnicast($device_tokens = '', $predefined= [], $extraField = []); //单播 sendListcast($device_tokens = '', $predefined= [], $extraField = []); //列播 sendFilecast($fileContents = '', $predefined= [],$extraField = []); //文件播 sendGroupcast($filter = [], $predefined= [], $extraField = []); //组播 sendCustomizedcast($alias = '', $alias_type = '', $predefined= [], $extraField = []); //自定义播,通过alias sendCustomizedcastFileId($file_contents = '', $predefined= [], $extraField = []); //自定义播,通过file_id Exception 程序不处理异常,可根据业务情况自行处理, 若抛出异常,可通过 e->getHttpCode() 获取http状态码, 通过 e->getErrCode()获取umeng返回的错误码. 使用过程中若出错,可自行查看Laravel或Lumen的Log日志

优秀的个人博客,低调大师

新书内容连载(3):Android SDK中常用命令行工具(一)

本文为原创,如需转载,请注明作者和出处,谢谢! 本文为新书《Android/OPhone 开发完全讲义》的内容连载。《Android/OPhone开发完全讲义》一书现已出版,敬请关注。 购买: 互动网 (china-pub) 《Android/OPhone 开发完全讲义》目录 源代码下载 上一篇: 新书内容连载(2):Android Activity的生命周期 1.启动和关闭ADB服务(adb start-server和adb kill-server) 经作者测试,模拟器在运行一段时间后,adb服务有可能(在Windows进程中可找到这个服务,该服务用来为模拟器或通过USB数据线连接的真机服务)会出现异常。这时需要重新对adb服务关闭和重启。当然,重启Eclipse可能会解决问题。但那比较麻烦。如果想手工关闭adb服务,可以使用下面的命令。 adb kill-server 在关闭adb服务后,要使用如下的命令启动adb服务。 adb start-server 2查询当前模拟器/设备的实例(adb devices) 有时需要启动多个模拟器实例,或启动模拟器的同时通过USB数据线连接了真机。在这种情况下就需要使用如下的命令查询当前有多少模拟器或真机在线。 adb devices 执行上面的命令后,会输出如图1所示的信息。 图1 其中第1列的信息(emulator-5554、HT9BYL904399)表示模拟器或真机的标识。emulator-5554表示模拟器,其中5554表示adb服务为该模拟器实例服务的端口号。每启动一个新的模拟器实例,该端口号都不同。HT9BYL904399表示通过USB数据线连接的真机。如果在运行Android程序时有多个模拟器或真机在线,那么会出现一个选择对话框。如果选择在真机运行,ADT会直接将程序安装在手机上。输出信息的第2列都是device,表示当前设备都在线。如果该列的值是offline,表示该实例没有被连接到adb上,或实例没有响应。3. 安装、卸载和运行程序(adb install、adb uninstall和am) 在Eclipse中运行Android程序必须得有Android源码工程。那如果只有apk文件(Android应用程序的发行包,相当于Windows中的exe文件)该如何安装和运行呢?答案就是adb命令。假设我们要安装一个ebook.apk文件,可以使用如下的命令。 adb install ebook.apk 假设ebook.apk中的package是net.blogjava.mobile.ebook,可以使用如下的命令卸载这个应用程序。 adb uninstall net.blogjava.mobile.ebook 关于package的概念在以后的学习中会逐渐体会到。现在只要知道package是Android应用程序的唯一标识即可。如果在安装程序之前,该程序已经在模拟器或真机上存在了,需要先使用上面的命令卸载这个应用程序,然后再安装。或使用下面的命令重新安装。 adb install -r ebook.apk 在卸载应用程序时可以加上-k命令行参数保留数据和缓冲目录,只卸载应用程序。命令如下所示。 adb uninstall -k net.blogjava.mobile.ebook 如果机器上有多个模拟器或真机实例,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用程序。 在emulator-5554模拟器上安装ebook.apk adb -s emulator-5554 install ebook.apk 在真机上安装ebook.apk adb -s HT9BYL904399 install ebook.apk 在emulator-5554模拟器上重新安装ebook.apk adb -s emulator-5554 install -r ebook.apk 在真机上重新安装ebook.apk adb -s HT9BYL904399 install -r ebook.apk 在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录) adb -s emulator-5554 uninstall net.blogjava.mobile.ebook 在真机上卸载ebook.apk(保留数据和缓冲目录) adb -s HT9BYL904399 uninstall -k net.blogjava.mobile.ebook 如果在模拟器和真机上成功安装ebook.apk,将会分别输出如图2和图3所示的信息。 图2 图 3 如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下的命令直接运行程序。 在emulator-5554模拟器上运行ebook.apk adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 在真机上运行ebook.apk adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 其中Main是ebook.apk的主Activity。相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。关于shell命令将在后成的部分详细介绍。 本文转自银河使者博客园博客,原文链接http://www.cnblogs.com/nokiaguy/archive/2010/07/05/1771125.html如需转载请自行联系原作者 银河使者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册