Socket.D 网络应用协议,v2.4.14 发布(已有 java, python, javascript 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:ws://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())

视频演示效果:

代码仓库:

官网:

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值