🎉 Socket.D v2.4.12 發佈(新增 python 實現)

Socket.D 協議?

Socket.D 是一個網絡應用協議。在微服務、移動應用、物聯網等場景,可替代 http、websocket 等。協議詳情參考《官網介紹》

  • 支持: tcp, udp, ws, kcp 傳輸。

  • 目前:java,kotlin,javascript,node.js,python 語言環境可用。go,rust,c/c++,.net 正在開發中。

for Java 更新

  • 調整 本端會話關閉時,也觸發本端的 onClose 事件
  • 優化 ws 連接控制,避免非法惡意空連
  • 優化 socketd-transport-java-kcp 服務端停止處理(添加延時,確保指令發送完成)
  • 優化 socketd-transport-java-tcp 在某些操作系統下空跑可能 cpu 過高的問題

for JavaScript/Node.js 更新

  • 調整 本端會話關閉時,也觸發本端的 onClose 事件
  • 優化 ws 連接控制,避免非法惡意空連

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())
  • 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!"))
    )

視頻演示效果:

代碼倉庫:

官網:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章