我正在尝试使用child_process.fork在节点中创建缓存服务器。
基本思想是有一个调度服务器将根据传入的URI产生分叉的“缓存服务器”。分叉缓存服务器后,客户端套接字将通过fork的.send方法发送到相应的分叉缓存服务器。
cacheServers[this.key] = require('child_process').fork(‘CacheServer.js’,[this.key]);
......然后
cacheServers[subKey].send(“client”,clientSocket);
有时将客户端(及其套接字)发送到fork工作正常,有时会抛出错误:
TypeError: Cannot set property 'onread' of null
at ChildProcess.handleConversion.net.Socket.send (child_process.js:134:21)
at ChildProcess.target.send (child_process.js:439:52)
at Server.server.Subscribe(/home/devuser/CachingServer/CachingServer.js:104:23)
at ChildProcess.<anonymous> (/home/devuser/CachingServer/CachingServer.js:145:10)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at handleMessage (child_process.js:318:10)
at Pipe.channel.onread (child_process.js:345:11)
我发送给分支机构的客户似乎没有区别。
那里的任何人都有任何线索吗?