# 总结日常问题 ## 为什么启动TCP服务器后客户端发送消息会断开连接 客户端发送的消息必须符合服务器定义的协议规范,tcp协议和http协议不同,tcp协议需要自定义协议规范,告诉服务器如何分割消息,常见的分割消息的方法有eof和length.如果客户端随意发送消息,将会被服务器踢下线. ## inotify报错upper limit on inotify watches reached 在对一个大磁盘进行inotify监听时,爆出如下错误: ``` Failed to watch /mnt/; upper limit on inotify watches reached! Please increase the amount of inotify watches allowed per user via ``` cat一下/proc/sys/fs/inotify/max_user_watches,默认值是8192,执行下面的语句即可 ``` echo 8192000 > /proc/sys/fs/inotify/max_user_watches ``` ## swSocket_set_buffer_size ![](https://box.kancloud.cn/86f7db02070eafac410f578e0fbe3a93_1835x208.png) 一般出现在虚拟机或者mac系统中。 如果出现上面的错误,请手动进入server.php配置中,将max_connection字段修改到1024或者更小。 >线上版本需要把max_connection设置到足够的大,一般100000,代表支持100000个连接。 ## [CoroutineTask]: Time Out!,[Request]: [Event][PR] ``` [CoroutineTask]: Time Out!, [Request]: [Event][PR]3->9:1 ``` 出现Event[PR]这种错误,如果你是使用虚拟机那么很抱歉,虚拟机中Swoole的进程间通讯功能有可能不能使用,如果想用完整的SD功能那么请使用docker或者物理机。 ## 出现Class not found 如果出现这个错误,请检查命名空间问题,一般情况是命名空间不对,或者不符合psr/4规范 ## 服务器突然无响应,各种协程超时 请查看下进程,如果进程cpu占用了率100%那么代表你业务代码出现了死循环。