您现在的位置是:首页 > 文章详情

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

日期:2024-04-29点击:180

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()) 

视频演示效果:

代码仓库:

官网:

原文链接:https://www.oschina.net/news/290177/socketd-2-4-14-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章