跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 木兰编程语言 0.0.14.8: websocket 聊天演示;部分比较 Python 语法
未分類
2020 年 11 月 11 日

木兰编程语言 0.0.14.8: websocket 聊天演示;部分比较 Python 语法

木兰编程语言 0.0.14.8: websocket 聊天演示;部分比较 Python 语法

資深大佬 : xuanwu 1

原文:《木兰编程语言 0.0.14.8:websocket 聊天演示;部分比较 Python 语法》

[安装:pip install ulang,用法与例程请见 PyPI。源码位于开源中国。 注意:必需 python 3.7,源码文件需 UTF-8 编码]

本周将 Python 框架 tornado自带的用 websocket 实现聊天的例程改为木兰实现。顺便将该例程涉及的木兰与 Python 语法对比小结,包括本周重现的 super 语法等。

1 实例演示

木兰编程语言 0.0.14.8: websocket 聊天演示;部分比较 Python 语法

主要木兰代码如下(完整代码在此)

type 聊天渠道 : tornado.websocket.WebSocketHandler {   {     接收端 = set()     历史 = []     历史长度 = 200   }    func $get_compression_options {     // Non-None enables compression with default options.     return {:}   }    func $open {     聊天渠道.接收端.add($)   }    func $on_close {     聊天渠道.接收端.remove($)   }    func 更新历史(消息) {     // 必须指定类     聊天渠道.历史.append(消息)     if len(聊天渠道.历史) > 聊天渠道.历史长度 {       聊天渠道.历史 = 聊天渠道.历史[-聊天渠道.历史长度 :]     }   }    func 广播(消息) {     logging.info("发到%d 个接收端", len(聊天渠道.接收端))     for 某接收端 in 聊天渠道.接收端 {       // TODO: try catch 尚待重现       //try:       某接收端.write_message(消息)       //except:       //    logging.error("Error sending message", exc_info=True)     }   }    func $on_message(内容) {     logging.info("收到消息: %r", 内容)     parsed = tornado.escape.json_decode(内容)     消息 = {"id": str(uuid.uuid4()), "body": parsed["body"]}     消息["html"] = tornado.escape.to_basestring(       $render_string("message.html", message=消息)     )      聊天渠道.更新历史(消息)     聊天渠道.广播(消息)   } } 

2 与例程涉及的 Python 语法对比

下面都基于当前对木兰的认识,今后随重现项目进展可能修改

[余下见原文《木兰编程语言 0.0.14.8:websocket 聊天演示;部分比较 Python 语法》]

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具