使用没有 COM 包的 PHP 版本 7 向 MSMQ 发送消息时出错

问题描述 投票:0回答:1

我正在尝试从 PHP 版本 7Microsoft 消息队列 (MSMQ) 发送消息。但是,PHP 版本 7 不再包含 COM 包,该包通常用于与 MSMQ 交互。

我一直在寻找替代方法或包来完成此任务,但一直未能找到合适的解决方案。

任何人都可以向我提供 **代码 **示例,或者向我指出可用于使用 PHP 版本 7 向 MSMQ 发送消息的相关文档或库吗?

任何帮助或指导将不胜感激。预先感谢您!

php com message-queue php-7 msmq
1个回答
0
投票

我已经解决了它,这是可以用于此类问题的解决方案。

    <?php 
    define("MQ_SEND_ACCESS", 2); 
    define("MQ_DENY_NONE", 0); 
    
    try {
        $msgQueueInfo = new COM("MSMQ.MSMQQueueInfo");
        $msgQueueInfo->PathName = ".\\private$\\messages"; 
    
        $msgQueue = $msgQueueInfo->Open(MQ_SEND_ACCESS, MQ_DENY_NONE);
        if (!$msgQueue) {
            throw new Exception("Failed to open the queue.");
        }
    
        $msgOut = new COM("MSMQ.MSMQMessage");
        $msgOut->Body = "It's my first commit"; 
        $msgOut->Send($msgQueue);
    
        $msgQueue->Close();
        unset($msgOut);
        unset($msgQueue);
        unset($msgQueueInfo);
    
        echo "Message sent successfully.";
    } catch (Exception $e) {
        echo "An error occurred: " . $e->getMessage();
    }

?>

我添加了 GitHub 链接,您可以在其中查看该项目相关代码和解决方案。 https://github.com/sanad-bhowmik/MSMQ_queue_Windows/tree/main

© www.soinside.com 2019 - 2024. All rights reserved.