请教关于事件触发resty.websocket.server发送消息的问题

125 views
Skip to first unread message

万胜李

unread,
Nov 17, 2015, 5:36:26 AM11/17/15
to openresty

您好:

我想问一下如何在某些事件触发的情况下,发送消息给客户端,比如有关于客户端的新的消息到来时

,再发送消息。同时又能实时监听recv_frame得到的数据,另外recv_frame 应该是阻塞直到收到消息才能继续往下执行的吧

我想用您的这套代码做一个实时聊天系统,同时server可以存储聊天记录,期待您的回复。谢谢!


    local server = require "resty.websocket.server"


    local wb, err = server:new{

        timeout = 5000-- in milliseconds

        max_payload_len = 65535,

    }

    if not wb then

        ngx.log(ngx.ERR, "failed to new websocket: ", err)

        return ngx.exit(444)

    end


    local data, typ, err = wb:recv_frame()


bytes, err = wb:send_text("Hello world")

    if not bytes then

        ngx.log(ngx.ERR, "failed to send a text frame: ", err)

        return ngx.exit(444)

    end

DeJiang Zhu

unread,
Nov 17, 2015, 8:56:26 AM11/17/15
to open...@googlegroups.com
hello,

在 2015年11月17日 下午6:36,万胜李 <huh...@gmail.com>写道:

您好:

我想问一下如何在某些事件触发的情况下,发送消息给客户端,比如有关于客户端的新的消息到来时

,再发送消息。同时又能实时监听recv_frame得到的数据,另外recv_frame 应该是阻塞直到收到消息才能继续往下执行的吧

对的,所以需要有两个轻线程来配合工作 

我想用您的这套代码做一个实时聊天系统,同时server可以存储聊天记录,期待您的回复。谢谢!

哈哈,正好,最近我也在做类似的事情,你可以搜索群组里,有过一些讨论帖子,或许可以给你一些参考


    local server = require "resty.websocket.server"


    local wb, err = server:new{

        timeout = 5000-- in milliseconds

        max_payload_len = 65535,

    }

    if not wb then

        ngx.log(ngx.ERR, "failed to new websocket: ", err)

        return ngx.exit(444)

    end


    local data, typ, err = wb:recv_frame()


bytes, err = wb:send_text("Hello world")

    if not bytes then

        ngx.log(ngx.ERR, "failed to send a text frame: ", err)

        return ngx.exit(444)

    end

--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html

万胜李

unread,
Nov 17, 2015, 9:35:06 PM11/17/15
to openresty
谢谢回复
祝工作快乐

在 2015年11月17日星期二 UTC+8下午9:56:26,doujiang写道:

万胜李

unread,
Nov 18, 2015, 10:01:34 PM11/18/15
to openresty
您好,再次打扰您一下

貌似从http://openresty.org/下载的版本无法使用

"content_by_lua_block” 指令。需要等还是做点什么可以解决这个问题,

我感觉这个命令比较好用。

谢谢!




在 2015年11月17日星期二 UTC+8下午9:56:26,doujiang写道:
hello,

Hadals Yang

unread,
Nov 19, 2015, 4:07:31 AM11/19/15
to openresty
最新的ngx_lua 模块

在 2015年11月19日星期四 UTC+8上午11:01:34,万胜李写道:

DeJiang Zhu

unread,
Nov 19, 2015, 5:53:41 AM11/19/15
to open...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages