🎉 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

相關推薦

2024-07-10

Socket.D 协议? Socket.D 是一个基于事件和语义消息流的网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript

2024-07-25

Socket.D 协议? Socket.D 是一个基于事件和语义消息流的网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript

2024-01-31

Socket.D 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go, rust, c

2024-02-09

Socket.D 协议 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go,

2024-04-25

Socket.D 协议? Socket.D 是一个网络应用协议。在微服务、移动应用、物联网等场景,可替代 http、websocket 等。协议详情参考《官网介绍》。 支持: tcp, udp, ws, kcp 传输。 目前:java,kotlin,javascript,node.js,python 语言环境可

2024-01-23

Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go, rust, c++ 正

2024-03-09

Socket.D 协议 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完成,再在测试中;go,

2024-01-12

Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 Socket.D.js 兼容更新说明 是近期发布的 socket.d

2024-01-04

有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http” 主要特性 基于事件,每个消息都可事件路由 所谓语义,通过元信息进行语义描述 流关联性,来回相关的消息会串成一个流 语言无关,使用二进制输传数

2023-12-05

有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http” 主要特性 基于事件,每个消息都可事件路由 所谓语义,通过元信息进行语义描述 流关联性,有相关的消息会串成一个流 语言无关,使用二进制输传数据

2024-01-10

于事件和语义消息流的网络应用层协议。 有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。 主要特性 基于事件,每个消息都可事件路由 所谓语义,通过元信息进行语义描述 流

2023-12-07

有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http” 与其它协议的简单对比 对比项目 socket.d http websocket rsocket socket.io 发消息(Qos0) 有 无 有 有 有 发送并请求(Qos1) 有 有

2024-06-14

支持 node.js 后端,web 前端) 传输协议支持 tcp、udp、websocket、kcp 本次更新 新增 控制台 “流量看板” 新增 客户端流量控制支持(trafficLimiter),可控制客户端内存占用 优化 folkmq-server 启用新的确认机制(向下兼容),

2023-12-19

网络通讯协议(官方的讲法是:基于事件和语义消息流的网络应用协议),能够满足很多场景下使用。其次,Scoket.D 是温和的响应式(采用回调风格)。 1、三种通讯模式 send 只是发送(发送后不管了) 发送一个请求,无