Ito ang command stompserver na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
stompserver - Stomp protocol na server ng pagmemensahe
SINOPSIS
stompserver [pagpipilian]
DESCRIPTION
Stomp messaging server na may file/dbm/memory/activerecord based FIFO queues, queue
pagsubaybay, at pangunahing pagpapatunay.
Opsyon
-C, --config=CONFIGFILE
File ng Configuration (default: stompserver.conf)
-p, --port=PORT
Baguhin ang port (default: 61613)
-b, --host=ADDR
Baguhin ang host (default: localhost)
-q, --queuetype=QUEUETYPE
Uri ng pila (memory|dbm|activerecord|file) (default: memory)
-w, --working_dir=DIR
Baguhin ang gumaganang direktoryo (default: kasalukuyang direktoryo)
-s, --imbakan=DIR
Baguhin ang direktoryo ng imbakan (default: .stompserver, nauugnay sa working_dir)
-d, --debug
I-on ang mga mensahe sa pag-debug
-a, --auth
Nangangailangan ng pahintulot ng kliyente
-c, --checkpoint=SECONDS
Oras sa pagitan ng pag-checkpoint sa mga pila sa ilang segundo (default: 0)
-h, - Tumulong
Ipakita ang mensaheng ito
PILA
Pinangangasiwaan ng Stompserver ang pangunahing pagproseso ng queue ng mensahe gamit ang memory, file, o dbm based
mga pila. Ang mga mensahe ay ipinapadala at ginagamit sa FIFO order (maliban kung may nangyaring error sa kliyente, ito
dapat itama sa hinaharap). Ang mga paksa ay memory-only storage. Maaari kang pumili
activerecord, file o dbm storage at gagamitin iyon ng mga pila, ngunit ang mga paksa ay gagamitin lamang
nakaimbak sa memorya.
Ang mga pila ng memorya ay siyempre ang pinakamabilis ngunit hindi dapat gamitin kung nais mong matiyak
lahat ng mensahe ay naihatid.
Ang dbm queues ay gagamit ng berkeleydb kung magagamit, kung hindi man ay dbm o gdbm depende sa
platform. Ang sdbm ay hindi gumagana nang maayos sa marshaled data. Tandaan na ang mga pila na ito ay wala
nasubok sa release na ito.
Para sa imbakan na nakabatay sa file, ang bawat frame ay nakaimbak sa isang file. Ang unang 8 byte
naglalaman ng haba ng header, ang susunod na 8 byte ay naglalaman ng haba ng katawan, pagkatapos ay ang mga header
ay iniimbak bilang isang marshalled na bagay na sinusundan ng katawan na nakaimbak bilang isang string. Ang imbakan na ito ay
kasalukuyang hindi episyente dahil ang mga pila ay nakaimbak nang hiwalay sa mga mensahe, na pinipilit a
dobleng pagsulat para sa mga kadahilanang pangkaligtasan ng data sa bawat mensaheng nakaimbak.
Inaasahan ng storage na nakabatay sa activerecord na makakahanap ng database.yml file sa configuration
direktoryo. Ito dapat ang pinakamatatag na backend, ngunit ang pinakamabagal. Ang database ay dapat
magkaroon ng ar_messages table na maaaring malikha gamit ang sumusunod na code (ikaw ay
responsableng gawin ito):
ActiveRecord::Schema.define gawin
create_table 'ar_messages' gawin |t|
t.column 'stomp_id', :string, :null => false
t.column 'frame', :text, :null => false
dulo
dulo
Maaari mong basahin ang mga frame gamit ang modelong ito:
klase ArMessage < ActiveRecord:: Base
serialize :frame
dulo
Ang pagpapatupad ng ar_message ay tiyak na magbabago sa hinaharap.
Ito ay sinadya upang madaling mabasa ng isang Rails application (na maaaring hawakan ang
ar_messages paglikha ng talahanayan na may paglipat).
ACCESS Kontrol
Sinusuportahan din ang pangunahing pahintulot ng kliyente. Kung ang -a flag ay ipinasa sa stompserver sa
startup, at mayroong .passwd file sa run directory, pagkatapos ay kakailanganin ng mga kliyente
magbigay ng wastong login at passcode. Tingnan ang passwd.example para sa format ng file ng password.
PAGBABALIK
Ang mga pila ay maaaring masubaybayan sa pamamagitan ng monitor queue (malamang na hindi ito susuportahan
paraan sa hinaharap upang maiwasan ang pagdumi sa namespace ng pila). Kung nag-subscribe ka sa
/queue/monitor, makakatanggap ka ng status message tuwing 5 segundo na nagpapakita ng bawat isa
queue, ang laki nito, mga frame na naka-queue, at mga frame na na-dequeued. Ang mga istatistika ay ipinadala sa parehong format
ng mga stomp header, kaya madaling i-parse ang mga ito. Ang sumusunod ay isang halimbawa ng isang status message
naglalaman ng mga istatistika para sa 2 queue:
Queue: /queue/client2 size: 0 dequeued: 400 enqueued: 400
Queue: /queue/test size: 50 dequeued: 250 enqueued: 300
Gumamit ng stompserver online gamit ang mga serbisyo ng onworks.net