2012-08-30 21 views
5

के अंदर एक PHP स्क्रिप्ट में ज़ीरोएमक्यू का उपयोग करना मैं अपने वेब एप्लिकेशन से डेटा को एकाधिक सर्वर पर प्रेषित करने के लिए ज़ीरोएमक्यू प्रकाशक/ग्राहक का उपयोग करना चाहता हूं।अपाचे

मैं वेब ऐप्लिकेशन के लिए अपाचे और PHP का उपयोग, मेरे php स्क्रिप्ट के रूप में अनुवर्ती काम करता है:

//Initialization 
$context = new ZMQContext(); 
$publisher = $context->getSocket(ZMQ::SOCKET_PUB); 
$publisher->bind("tcp://*:5556"); 

//Then publishing for testing: 

$publisher->send("test"); 
$publisher->send("test"); 
$publisher->send("test"); 
$publisher->send("test"); 
$publisher->send("test"); 

परीक्षण के लिए मैं अजगर में दस्तावेज़ से एक ग्राहक अनुकूलित:

import sys 
import zmq 

# Socket to talk to server 
context = zmq.Context() 
socket = context.socket(zmq.SUB) 

socket.connect ("tcp://localhost:5556") 

# Subscribe to zipcode, default is NYC, 10001 
socket.setsockopt(zmq.SUBSCRIBE, "") 

print "Waiting..." 
# Process 5 updates 
for update_nbr in range (5): 
    string = socket.recv() 
    print string 

पूरी बात काम करता है जब मैं कमांड लाइन से php स्क्रिप्ट चलाता हूं लेकिन अपाचे के माध्यम से काम नहीं करता (जब स्क्रिप्ट किसी वेब ब्राउज़र के माध्यम से चलती है)।

क्या यह मेरे काम को बनाने के लिए मेरे अपाचे कॉन्फ़िगरेशन में कुछ भी करना चाहिए?

धन्यवाद

एलेक्जेंडर

उत्तर

2

ऐसा लगता है केवल समस्या यह थी कि उस कनेक्शन स्थापित किया जा करने के लिए समय नहीं था।

बाइंडिंग के बाद प्रकाशक पर नींद जोड़ना और भेजने से पहले इस मुद्दे को हल किया गया, भले ही काफी सुंदरता न हो।

यहां मुद्दा यह समझाया गया है:

http://zguide.zeromq.org/page:all#Getting-the-Message-Out