这是一款使用 PHP 开发的命令行聊天软件,基于 UDP 协议
本项目属于个人无聊写的作品,有不足的地方欢迎提 Issues 或者 Pull Request。
我也不知道写来有啥用,而且类似的东西一大堆了,就自己写着玩吧
项目地址: https://github.com/kasuganosoras/UChat
附上一个可以直接运行的客户端: https://pan.baidu.com/s/1hdceQQ1RMYRo2ClnH3HK5g 提取码: qaas
UChat 其实没有一个明确的分组或者私聊的概念,只要两个以上的用户使用相同的 key 连接服务器,就能一起聊天。
例如用户 A 和用户 B 都使用 2333333 这个 Key 登陆到服务器,那么 A 和 B 就可以一起聊天。
如果用户 A 使用 2333333 这个 Key,而用户 B 使用 6666666 这个 Key,那么 A 和 B 将无法聊天。
用户在发送消息的时候,使用自己的 Key 加密消息内容,服务器收到加密的消息后不做任何处理,发送给所有的客户端,其他客户端收到加密的消息后,如果 Key 和发送者的 Key 相同,就可以解密消息内容,如果不相同则无法解密,自然就无法得到消息内容。
于是呢,只要有另一个人的 Key 和你的 Key 相同,那么你们就可以互相看见对方发的消息,如果有很多人都使用一样的 Key,那就可以成为一个群组。
运行服务端需要:Swoole、Redis
运行客户端需要:Pthreads
首先将项目 clone 到本地,然后进入目录
git clone https://github.com/kasuganosoras/UChat
cd UChat/
接着启动服务端,推荐在 screen 里运行,或者使用 nohup
php server.php
然后客户端也是同样的启动方式
php client.php
启动客户端以后根据提示设置即可。
比较鸡肋的一个功能,感觉可能有用就加上去了
抗重放攻击使用系统时间进行验证,因此请确保聊天各方的时间相差不要超过 1 分钟,否则会验证失败。
因为怕给大佬 DDoS,所以我就不放公共服务器地址了,各位有兴趣的话可以自己搭建一个服务器玩玩。
如果觉得这个项目不错的话欢,迎给我一个 Star,谢谢~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.