使用workerman 的channel服务有时候会提示扩展的server下的 unserialize(): Error at offset 0 of 160 bytes
看代码报错
提示的代码如下:
2025-05-30 06:55:45 pid:349529 worker[plugin.webman.channel.server:349608] exit with status 64000
2025-05-30 06:55:47 pid:776020 ErrorException: unserialize(): Error at offset 0 of 160 bytes in /www/wwwroot/cs/api/vendor/workerman/channel/src/Server.php:88
Stack trace:
#0 [internal function]: {closure}(8, 'unserialize(): ...', '/www/wwwroot/cs...', 88, Array)
#1 /www/wwwroot/cs/api/vendor/workerman/channel/src/Server.php(88): unserialize('\xFFSMBr\x00\x00\x00\x00\x08\x01@\x00\x00\x00...')
#2 /www/wwwroot/cs/api/vendor/workerman/workerman/Connection/TcpConnection.php(646): Channel\Server->onMessage(Object(Workerman\Connection\TcpConnection), '\xFFSMBr\x00\x00\x00\x00\x08\x01@\x00\x00\x00...')
#3 /www/wwwroot/cs/api/vendor/workerman/workerman/Events/Select.php(311): Workerman\Connection\TcpConnection->baseRead(Resource id #593)
#4 /www/wwwroot/cs/api/vendor/workerman/workerman/Worker.php(1629): Workerman\Events\Select->loop()
#5 /www/wwwroot/cs/api/vendor/workerman/workerman/Worker.php(1423): Workerman\Worker::forkOneWorkerForLinux(Object(Workerman\Worker))
#6 /www/wwwroot/cs/api/vendor/workerman/workerman/Worker.php(1397): Workerman\Worker::forkWorkersForLinux()
#7 /www/wwwroot/cs/api/vendor/workerman/workerman/Worker.php(1779): Workerman\Worker::forkWorkers()
#8 /www/wwwroot/cs/api/vendor/workerman/workerman/Worker.php(1715): Workerman\Worker::monitorWorkersForLinux()
#9 /www/wwwroot/cs/api/vendor/workerman/workerman/Worker.php(562): Workerman\Worker::monitorWorkers()
#10 /www/wwwroot/cs/api/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#11 /www/wwwroot/cs/api/start.php(5): support\App::run()
#12 {main}
截图:
如果直接改了底层的server和client 文件会不会出问题 ,用json的写法 来代替 序列化和反序列化 serialize ?或者各位大佬有没有解决方案。
client下的
server 报错的位置 88行
server的2206端口不要暴露给外网,否则可能会有一些网路探测程序发过来不合法的探测数据。
好,谢谢。