openresty websocket 使用

1. 代码如下:

  1. local server =require"resty.websocket.server"
  2. local wb, err = server:new{
  3. timeout =5000,
  4. max_payload_len =65535
  5. }
  6. ifnot wb then
  7. ngx.log(ngx.ERR,"failed to new websocket: ", err)
  8. return ngx.exit(444)
  9. end
  10. whiletruedo
  11. local data, typ, err = wb:recv_frame()
  12. if wb.fatal then
  13. ngx.log(ngx.ERR,"failed to receive frame: ", err)
  14. return ngx.exit(444)
  15. end
  16. if typ =="close"thenbreak
  17. elseif typ =="text"then
  18. local bytes, err = wb:send_text(data)
  19. ifnot bytes then
  20. ngx.log(ngx.ERR,"failed to send text: ", err)
  21. return ngx.exit(444)
  22. end
  23. end
  24. end
  25. wb:send_close()

2. 参考文档:

https://github.com/openresty/lua-resty-websocket

时间: 2024-11-03 05:21:00

openresty websocket 使用的相关文章

基于 OpenResty 的服务器架构设计

这个服务器架构不一定能用上,记录在这里,算是一个小小的学习成果. 1. 技术选择 Cocos2d-x 3.x —— 客户端框架. WebSockt —— 网络协议. HTTP —— 网络协议. OpenResty —— 基于 nginx+lua 实现 WebSocket 或 HTTP 服务器. MySQL —— 数据库支持. Redis —— NoSQL 支持. 2. 逻辑服务器 有两个不同的客户端需要提供服务.data_tester 和 client .它们都需要 WebSocket 服务,

基于OpenResty和Node.js的微服务架构实践

什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性.伸缩性较差,技术转型.跨语言配合相对困难.而微服务架构强调一个服务负责一项业务,服务可以单独部署,独立进行技术选型和开发,服务间松耦合,服务依赖的数据也独立维护管理.虽然微服务存在部署复杂.运维难度较大.分布式事务控制难.容错要求高等缺点,但总体而言,微服务的优点远大于其复杂性. 微服务架构需要注意哪些问题? 微服务架构,首先考虑客户端与服务端之间的通信问题.有两种解决办法,一是客户端与多个服务端直接进行通信

微信小程序 WebSocket 使用非 443 端口连接

前言 微信小程序支持使用 WebSocket 连接到服务器,准确地说是带 SSL 的 WebSocket,而微信小程序中不允许使用带端口的 wss 连接,只能使用 443 端口.想使用其他端口就需要在服务器做一层代理,本文以 Ubuntu 16.04 服务器为例,使用 nginx 做 Web Server .本文参考了 如何在微信小程序的websocket上使用mqtt协议 ,在此感谢原作者. 步骤 安装 nginx 及配置的过程不再赘述,nginx 需要处理微信小程序 WebSocket 不支

pushpin openresty 集成试用

pushpin 是一个很不错的将restapi 转换为reailtime api 的proxy,openresty 具有很强的nginx 控制能力 可以方便的用来进行api 的开发,默认其他语言pushpin 提供了sdk ,但是lua 的暂时还没有,所以基于 http 请求,搞一个简单的测试,后期可以参考其他语言,封装为lua 模块 环境准备 docker-compose 文件 version: "3" services: pushpin: image: fanout/pushpin

centos yum 安装openresty

yum 安装openresty sudo yum install yum-utils -y sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo sudo yum install openresty -y 到此,openresty就安装好了 如果想安装openresty调试工具 可以sudo yum install openresty-resty 用如下命令查看安装了哪些ope

web新特性 之 WebSocket

详情参见:你真的了解WebSocket吗?     WebSocket系列教程   HTML5新特性之WebSocket WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与服务器全双工(full-duplex)通信.其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信. 服务端与客户端的连接不断开,实现全双工的操作.及服务端或是客户端都会给对方发送消息. WebSocke

websocket之拨云见雾

websocket是基于http相应的特性弥补其不足(就是个socket,不再是一次请求一次相应) 但缺点就是只有在版本较高的浏览器才支持websocket. 浏览器: <script type="text/javascript"> var socket = new WebSocket("ws://127.0.0.1:8002/xxoo"); ... </script> 服务端: import socket sock = socket.soc

websocket

什么是websocket? 不错的介绍:https://www.zhihu.com/question/20215561 websocket是一种持久化的协议,实现了浏览器和服务端的全双工通信: 握手阶段与HTTP协议相同,返回状态码101(switching protocols): 握手阶段完成之后,按照websocket协议进行通信 应用场景: 浏览器与服务端需要实时通信的场景,以前的解决方式:ajax轮询.HTTP长连接.Flash等. 实现: 浏览器端 const ws = new Web

安装OpenResty开发环境

OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web 应用.Web 服务和动态网关(摘自官网).本文将会介绍如何在Centos7上,安装Nginx+Lua的开发环境,并运行一个"Hello World"示例. 一.环境安装 1.1 创建工作路径 我计划将Openresty安装到/usr/servers下,首先创建这个文件夹. [[email