mormot支持websocket

根据定义,HTTP连接是无状态的和单向的,也就是说,客户机向服务器发送一个请求,该服务器通过一个应答回复。
没有客户端的预先请求,就没有办法让服务器发送消息给客户机。

WebSockets是能让普通的HTTP连接升级为双路通信有线通信协议。
在安全握手之后,底层TCP/IP套接字能够通过一组轻量级协议直接访问应用程序定义的协议,而不需要HTTP开销。

synbidirsock.pas单元实现底层服务器和客户端WebSocket通信。

服务端:

uses mORMotHttpServer

 HttpServer := TSQLHttpServer.Create('8888',[Server],'+',useBidirSocket);Under the hood, it will instantiate a TWebSocketServer HTTP server, as defined in mORMotHttpServer.pas, based on the sockets API, able to upgrade the HTTP protocol into WebSockets.Our High-performance http.sys server is not yet able to switch to WebSockets - and at API level, it would require at least Windows 8 or Windows 2012 Server.

Then you enable WebSockets for the TWebSocketProtocolBinary protocol, with an encryption key:

   HttpServer.WebSocketsEnable(Server,'key');

客户端:
Client := TSQLHttpClientWebsockets.Create('127.0.0.1','8888',TSQLModel.Create([]));Client.WebSocketsUpgrade('key');除了常规的查询/应答命令定义客户端服务器的服务通过接口,还可以使用接口参数的服务定义回调方法。

mormot支持websocket相关推荐

  1. (一)检测浏览器是否支持websocket

    二.创建一个支持 WebSocket 的服务 1.从pywebsocket下载mod_pywebsocket(亲git clone),地址在这里啦~,这里请注意,mod_pywebsocket需要py ...

  2. Socket.IO介绍:支持WebSocket、用于WEB端的即时通讯的框架

    一.基本介绍 WebSocket是HTML5的一种新通信协议,它实现了浏览器与服务器之间的双向通讯.而Socket.IO是一个完全由JavaScript实现.基于Node.js.支持WebSocket ...

  3. 快速搭建CentOS+ASP.NET Core环境支持WebSocket

    以前用python,go尝试在linux下做web服务,python没有强类型支持与高性能,go又没有很好的集成开发环境(还有强迫症的语法),回头看了几次.net,都没有时间尝试,现终于实现了这些想法 ...

  4. WebSocket API使用篇检测浏览器是否支持WebSocket(4)

    WebSocket API是下一代客户端-服务器的异步通信方法.前面有三篇文章已经对WebSocket有了一些介绍,这里我总结了一下.我在使用WebSockets API过程中遇到的问题. 1.检测浏 ...

  5. Nginx支持WebSocket反向代理-学习小结

    WebSocket是目前比较成熟的技术了,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择.其为HTML5的一部分,WebSocket相较于原来开发这类app的 ...

  6. mosquitto支持websocket的使用方法

    欢迎加入QQ群:221779856,国内最活跃的Mosquitto沟通社区,关于MQTT.Mosquitto.IM.推送系统.物联网.高并发处理等技术. mosquito的版本要大于1.4.2: 1. ...

  7. nginx开启支持websocket连接

    引用至:http://www.javajob.work/article/24 2020-1-9: nginx的启动:/usr/local/nginx/sbin/nginx -c /usr/local/ ...

  8. 阿里云全站加速DCDN全面支持WebSocket协议

    WebSocket协议可以为网站和应用提供真正的双向通信,具有控制开销.保持连接状态.更强实时性.更好的压缩效果等优点,是当下低延时应用最常采用的一种技术协议.为了更好的满足客户在实时通讯场景下的加速 ...

  9. 判断浏览器是否支持websocket的方法

    比较直观的方式是直接判断全局对象中是否包含WebSocket对象即可: if( typeof(WebSocket) != "function" ) {alert("您的浏 ...

最新文章

  1. Linux 应用程序 嵌汇编,Linux下C语言嵌汇编
  2. python简单工厂模式_简单工厂模式-python语言实现
  3. dbinfo.properties mysql_java 8.0Mysql 助手类
  4. 中国自研数据库拿下世界第一,背后这十年都经历了什么?
  5. libco协程库源码解读
  6. 如何在 MacOS 环境下搭建 SVN 服务端环境
  7. Linux进程全解1——程序的开始、结束
  8. CSS的@media与@media screen,媒体查询
  9. linux怎样卸载conda,【原创文章】生信软件环境conda的安装与卸载
  10. OSChina 周二乱弹 —— 高手应该习惯寂寞
  11. 51 ADC0809八路NTC温度采集系统(代码+仿真,OLED SPI)
  12. Win10企业版本激活方法
  13. 修改后的取得汉字首字母的lazarus函数,可以自己增加疑难汉字,这个应该比较理想了
  14. SQL Server上月同期 日期的计算
  15. python化学公式配平_PYTHON趣用—配平化学方程式-阿里云开发者社区
  16. 使用 Ghidra 分析 phpStudy 后门
  17. 企业级项目分享:购物车模块(一)2021-06-08
  18. 《跟着王老师学Excel VBA》的笔记
  19. ViewConfiguration常量字段介绍
  20. div盒子最小宽度_css最小宽度 min-width

热门文章

  1. OpenStack虚拟机删除后停在deleting无法正常删除
  2. 第五章 深入理解Magento – Magento资源配置
  3. 浅论服务端应用程序开发中的CAP思想(非分布式系统中的CAP理论)
  4. 常量池、perm(持久代)、方法区、栈
  5. HTML5 input placeholder 颜色 改动
  6. jackson (json、xml的序列化与反序列化)
  7. mysql 如何查看constraint定义的的所有约束_MySQL:如何查看表上的所有约束?
  8. pycharm设置控制台的解释器_PyCharm 中文教程 01:运行 Python 的四种方式
  9. axurehtml打开不用用_还有人花钱买会员看剧?赶紧用iPhone免费追剧
  10. 笔记本电脑u盘装linux系统,用U盘给Linux笔记本电脑重装Win7/XP系统的图文教程