TouchFish Chat 帮助
Welcome to the TouchFish wiki!
本页面编辑者:细数繁星、Piaoztsdy,编辑时间:2025/10/05 14:47开始
TouchFish 服务端使用指南
v2.0.0 版本中,更新了文件收发功能,会出现兼容性问题。server 也无法完全规避此现象。因此,这里建议各位在主聊天室中,如果无法确定机房中所有人均使用 v2.0.0,禁止文件传输功能。
Getting started
最基本的部分 REAMDE 和专栏都有提到,便不再提了。这一次讲更进阶的。
你可以使用参数法启动 server:
1 | ~/> ./chat <ip> <max_times> <port> |
如对于下图的界面,一种启动方法是:
1 | ~/> ./chat localhost 114514 8080 |
新版的 TouchFish server 在部署成功后有这个页面:
有一些关键信息要注意一下:
- 当前版本和最新版本,如果想获取更新的功能,可以更新。(最新版本只有在互联网可用的情况下才会显示,否则为
UNKNOWN
) - 与老版本不同的是,日志不再实时显示,而是保存在与执行目录下的
log.txt
中。server 不能直接关闭,需要输入 exit 关闭,否则会丢失日志信息! - 想获取最新日志,请输入
flush
。 - 本目录下有配置文件
config.json
,如果想要加载上次的配置。那么直接在同一目录下运行原来的 server 即可。 - 本命令行中所有和用户名有关的,若该用户没有发送过信息,则无法获取其用户名,显示为
UNKNOWN
。 - 强烈建议大家打开自动移除套接字的功能(v1.3.0 及以后的版本支持),没有这个功能的去官网升级,在这。
如果你比较聪明,你可以通过 help
命令详细了解每个命令和它们的用法。如果你更加聪明,你会点个 star 然后 clone 源代码直接脑编。
如何禁止文件传输功能
进入命令行控制页面后,输入:
1 | ban words [FILE_ ] ="} =="} |
如果要永久 ban,请使用:
1 | ban forever words [FILE_ ] ="} =="} |
下面详细介绍这个命令行页面如何使用:
广播信息
用法:
1 | broadcast <msg> |
实例:
1 | localhost:8080> broadcast TouchFish yyds |
效果:
如果有人不在线,会报告错误(这是可忽略的):
1 | localhost:8080> broadcast TouchFish yyds |
房主准许后方可进入
该功能需要此命令来开启:
1 | set EAP on |
EAP
是 Enter After Promitting
的缩写,当然这不重要。
如果你希望在每一次加载时都默认需要准许才能加入,则输入:
1 | set forever EAP on |
关闭亦然,on
改成 off
。
在该功能启动时,新加入的客户端上会显示:
而在 server 上会显示:
1 | <Rid> 用户 (IP, 这啥玩意我也不知道) 申请加入聊天室,请处理。 |
Rid 是一个用户申请加入聊天室的请求编号。比如刚刚的实例中会显示:
1 | <0> 用户 ('127.0.0.1', 58053) 申请加入聊天室,请处理。 |
如果准许多个编号为 <rid_i>
的请求,那么请输入:
1 | accept rid1 rid2 rid3 ... |
刚刚的实例中需要输入:
1 | accept 0 |
如果拒绝多个编号为 rid_i
的请求,那么请输入:
1 | reject rid1 rid2 rid3 ... |
会显示提示(懒得抄了)
准许后客户端显示:
拒绝后客户端显示:
自动移除离线的套接字
因为 server 实现极为粗暴,连接上一个套接字直接塞列表里。这就导致在长时间挂机运行以后 server 会出现高荷载的问题。
因此在 v1.3.0 版本中,我们引入了自动删除离线套接字的功能。
这个功能及其重要,强烈建议部署者们在启动 server 后立即开启。
使用方法:
1 | set ARO on/off (forever) |
ARO 为 Auto Remove Offline
的缩写。
拉黑和解除拉黑 ip
我看很多人对这个很期待,保守估计有 7 个人曾提过添加这个功能的想法。
如果你想看用户的具体信息,以便了解是否拉黑,请转到这。
这个命令还是很简单的:
1 | ban ip <ip1> <ip2> <ip3> ... |
实例:
如果想永久拉黑:
1 | ban forever ip <ip1> <ip2> <ip3> ... |
解禁和永久解禁同理,把 ban
改成 enable
即可。
添加屏蔽词和解除屏蔽词
用法:
1 | ban words <w1> <w2> <w3> ... |
如:
1 | ban words sb tmd |
你可以在 words
前面加上 forever
,以永久添加屏蔽词。
解禁和永久解禁同理,把 ban
改成 enable
即可。
限制消息长度
用法:
1 | ban length <len> |
如:
1 | ban length 114 |
你可以在 length
前面加上 forever
,以永久限制消息长度。
这个没法解禁(默认值是 )。
用户加入提醒房主
1 | set SEM on |
即可,想关掉就 on
改成 off
。
如果想永久设置,最后面加个 forever
查询用户具体信息
这个命令用起来就有点复杂了。
搜索 IP 为 的用户
输入:
1 | search ip <ip> |
需要注意的是,多个 IP 相同的套接字只显示最后一个链接的。
搜索用户可以匹配正则串 <user>
的用户
没错,这个命令,它支持正则。
输入:
1 | search user <user> |
搜索所有在线用户
1 | search online |
搜索所有离线用户
1 | search offline |
注意 server 不是轮询的,所以只有在发送信息或广播后才能确定一个用户是在线还是离线的。
搜索所有封禁用户
1 | search banned |
搜索所有发送信息次数大于 <times>
的用户,并以发送信息次数为关键词降序排序输出
1 | search send_times <times> |
缓冲日志
1 | flush |
输出格式为(实例)
1 | IP USERNAME IS_ONLINE IS_BANNED SEND_TIMES |
实用功能
执行命令
1 | cmd <cmd> |
可以在Server中快速执行系统命令,免得再开一个命令行 (或者没法再开命令行) 。
功能妙用
因为新版chat会把日志和消息输出到log里面,查看不方便,就可以用这个命令:
1 | cmd cat log.txt # Linux(类Unix)端 |
1 | cmd type log.txt # Windows端 |
有没看懂或者 bug 直接找我,最好提 Issue