पर रेल में एम-वेबस्केट को सुरक्षित रूप से रोकना मेरे पास एक रेल ऐप है जो मैं EventMachine रन लूप का उपयोग करने के लिए पतली सर्वर पर चल रहा हूं। समस्या यह है कि मैं डब्ल्यूएस से आने वाली जानकारी को संसाधित करने के लिए एम-वेबस्केट को शामिल करने और ईएम रन लूप को रोकने के बिना वेबसाकेट शुरू करने में सक्षम होना चाहता हूं। इस प्रकार मैं वेबस्केट शुरू कर रहा हूं।पतली
EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080) do |ws|
ws.onopen { }
ws.onclose { }
ws.onmessage { |msg| }
end
समस्या प्रारंभ/रोक कोड में है। start_server कॉल करने के लिए EventMachine :: stop_server (हस्ताक्षर) इसे बंद करने के लिए सक्षम होने के लिए: उन्हें-WebSocket के डॉक्स
#Start WebSocket
def self.start(options, &blk)
EM.epoll
EM.run do
trap("TERM") { stop }
trap("INT") { stop }
EventMachine::start_server(options[:host], options[:port],
EventMachine::WebSocket::Connection, options) do |c|
blk.call(c)
end
end
end
#Stop WebSocket
def self.stop
puts "Terminating WebSocket Server"
EventMachine.stop
end
से समस्या यह है कि आंतरिक उन्हें-WebSocket कोड ईएम से आ रही हस्ताक्षर ट्रैक नहीं करता है। क्या कोई तरीका है कि मैं इन फ़ंक्शंस को एम-वेबस्केट को संशोधित किए बिना ओवरराइड कर सकता हूं ताकि मैं इन websockets को सुरक्षित रूप से प्रारंभ/बंद कर सकूं? मैं चाहूंगा कि यह स्टैंडस्टार्ट Eventmachine सर्वर की तरह अधिक प्रदर्शन करता है।
यही वह है जो मैंने किया। – MobileOverlord