Hello!
2014-09-27 10:05 GMT-07:00 dz:
> 本人想写一个即时聊天的后台服务器作为练手,由于本人是新手,刚刚学习openresty。我不是很明白lua-resty-websocket的应用。我不明白该怎么应用websocket实现服务器主动发送信息给客户端。在服务器和客户端建立连接后,如何保证服务器在处理客户端发过来信息的同时,能主动的发送给客户端信息。后来我用redis
> subscribe
> 来实现服务器根据需要给客户端发送信息,但是客户端通过websocket发送的消息却没有主动得到处理,只能通过http请求向服务器发送信息。我想应该是我的做法有问题。希望各位大神给点建议。。。不胜感激
>
使用 ngx.thread.spawn()
创建一个轻量级线程,于是你的请求处理程序里连默认的“主线程”一共有两个轻线程。你可以让两个轻线程分别处理两个不同的数据流方向:
1. 从 websocket 读取消息,写入 redis
2. 从 redis 读取消息,写入 websocket
其中 websocket 对象和 redis 对象都是为这两个线程共享的,但必定满足这个条件:在一个线程读取某个 socket
时,另一个线程只会同时写入同一个 socket,所以不存在共享冲突的问题。
Regards,
-agentzh