我有一个Perl服务器,当它启动时,它连接到1000多个客户端。使用SSL设置所有连接大约需要30-45分钟。我正试图将开始时间减少到更合理的东西。我尝试使用线程卸载工作,但无法让它工作。在一个线程中创建套接字并将其返回给调用者并不能按预期工作。尝试传递文件描述符并使用IO :: Socket :: SSL-> new_from_fd()重新创建,以在调用者中重新创建套接字但失败。
有没有人对如何快速创建这么多套接字有任何建议?或者至少比O(n)......
更快更新:看起来POE框架绝对是我想探索的东西。文档听起来像它可以做我需要的。我现在正在构建一个概念证明,并且在访问Sessions中创建的Socket对象时遇到了麻烦。我可以在POE会话中创建套接字,但是在完成之后,我希望我的主程序将创建的套接字收集到一个哈希中。任何人都知道如何从POE会话中检索对象?
更新:有一个想法,包括使用全局变量并在会话中添加套接字,或者保持对创建的会话的引用并访问其堆栈以聚合它们。现在试试......
答案 0 :(得分:3)
在POE中查看此TCP SSL Client代码。可以轻松扩展该示例以执行您请求的操作。如果您之前没有在POE中编码,那么就会有一个学习曲线,但它非常好documented。