PHP分组聊天室--fooking现实

   最近也是比较忙,公司打码,回家继续打,越忙越折腾! 一个不当心半夜一点了,花了一夜时间终于把这个分组聊天室写完了,前两天刚把fooking的websocket协议加上,纯lua实现。
php

   fooking的项目地址:http://git.oschina.net/scgywx/fookingcss

   在线demo地址: http://182.254.135.131/chat/ html

   开发聊天室这基本是上每一个搞socket长链接的一个通例了,主要是实现起来简单,能使用最少的代码实现客户端与服务端持久通讯,那么此次也不例外,仍是拿聊天室说事,不过此次要"高级"一点,能分组,而不是发个消息就广播给全部人。当某个用户向指定组发送数据时,只有在此分组的用户才能收到消息,别的分组不会收到消息。固然这里的分组是利用了fooking的一个组播机制,把N个客户端加入到一个分组(组名能够是任意字符串),发消息的时候只须要指定组名便可(其实也就是存储一个列表,而后遍历发送,只是这一步由fooking完成)。
git

   聊天室的界面大概就是以下这样子,左边是用户列表,右上方是频道列表(能够选择),下面是消息列表,当选择一个你没有加入过的频道将会弹出“加入此频道“的按钮,点击就能加入该频道了,剩下的就是聊天了,大体功能就是这样子。web


    这样一个聊天室程序,只须要不到100行php和不到200行html/css/js,其配置也很是简单,以下步骤:redis

    一、启动router, 修改项目src目录下的router.lua配置文件(好比:端口,日志等),而后执行:./fooking router.luawebsocket

    二、启动gateway, 修改项目src目录下的config.lua配置文件(好比:端口,router端口,script, php程序路径等,最主要是FASTCGI_ROOT),  而后执行: ./fooking config.lua   socket

              注意:  在config.lua里面配置了script.lua(用于处理打包和解包),在修改config.lua的时候请注意script.lua的路径php-fpm

                          script.lua里面使用了websocket协议,他须要依赖另外一个Sha1.lua文件(在src目录就有),请注意必定要把script.lua与Sha1.lua放在同一目录,否则可能会报错lua

    三、 安装php-fpm、redis、redis扩展

    四、修改example/chat/index.html文件里面websocket的IP和端口(查找ws://就能找到)

相关文章
相关标签/搜索