r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!Uniserve] Creating Uniserve processes

BrianH
17-Oct-2010
[700]
R/S is a network protocol, mostly used for RPC. Uniserve is an infrastructure 
you can use to build network protocols on. For instance, the Cheyenne 
web server is built on Uniserve. For that matter, at one point someone 
built an R/S implementation on Uniserve.
Pekr
17-Oct-2010
[701]
nve - R/S were never properly finished. And for R3, Carl has lighter 
network services in mind. I would not bet on R/S for now ...
nve
18-Oct-2010
[702]
ok thx, I'm going to go deeper in Uniserve.
Kaj
19-Oct-2010
[703]
As Brian says, they're largely complementary. UniServe is mostly 
about the transport layer, while RebServices is mostly about the 
messaging layer
GrahamC
24-Feb-2011
[704]
I wonder how it would work to partner my smtp ( receiving server 
) with the smtp ( sending ) functionality available in Cheyenne
Kaj
24-Feb-2011
[705]
Only one way to find out
GrahamC
24-Feb-2011
[706]
My frustration with the iphone is the cause of this enquiry
Dockimbel
27-Feb-2011
[707]
Graham: merging both smtp servers codebase could be a good option 
and a way for Cheyenne to get 7-bit SMTP server support (which it 
is lacking currently, so classified as still "experimental").
Endo
16-Dec-2011
[708]
I've started using UniServe in a production, should I use the one 
comes with Cheyenne or UniServe-r099?
Dockimbel
16-Dec-2011
[709]
The one from Cheyenne package.
Endo
16-Dec-2011
[710]
No official documentation, but change-log is enough I think, right? 
(And services/protocols in Cheyenne as examples)
Dockimbel
16-Dec-2011
[711x2]
Exactly. You can also use the documentation from http://softinnov.org/rebol/uniserve.shtml
And for new features, have a look in Cheyenne's changelog.
Endo
16-Dec-2011
[713]
Thanks a lot. I might have some questions while coding. I'm writting 
a SMS Send/Receive/Forward server & client.
Dockimbel
16-Dec-2011
[714]
Feel free to ask.
Endo
16-Dec-2011
[715x5]
HTTPd service in UniServe is getting integrated with Cheyenne. There 
are some words & paths about Cheyenne which is not present when I 
use HTTPd without Cheyenne.
Same for task-master service. There is "uniserve/shared/server-ports" 
in "on-started" event. server-ports block is defined if we use Cheyenne. 

I made just a few extra control then able to run task-master service 
without Cheyenne. But couldn't run HTTPd
By the way, old HTTPd service (in 0.9.9 zip) runs well for HTML pages.
But gives following error when I request show.cgi file:
17/12-2:59:31.9210-[HTTPd] Method: GET - resource: /show.cgi
17/12-2:59:36.0930-[uniserve] New client: 127.0.0.1 - 9799
17/12-2:59:36.0930-[uniserve] Calling >on-new-client<

17/12-2:59:36.0930-[uniserve] << Port: 1723, low-level writing: 896
17/12-2:59:36.1090-[uniserve] Calling >on-write-done<

17/12-2:59:36.1250-[uniserve] >> Port: 1723, low-level reading: 13

17/12-2:59:36.1250-[uniserve] Calling >on-received< with {^@^@^@^-}

17/12-2:59:36.1400-[uniserve] Calling >on-received< with "[ok none]"

17/12-2:59:36.1400-## Error in [uniserve] : On-received call failed 
with error: make object! [
    code: 303
    type: 'script
    id: 'expect-arg
    arg1: 'copy
    arg2: 'value
    arg3: [series! port! bitset!]
    near: [either "HTTP" = copy/part data]
    where: 'on-task-done
] !
17/12-2:59:36.1710-[uniserve] Port closed : 127.0.0.1
17/12-2:59:31.9210-[HTTPd] Method: GET - resource: /show.cgi
17/12-2:59:36.0930-[uniserve] New client: 127.0.0.1 - 9799
17/12-2:59:36.0930-[uniserve] Calling >on-new-client<

17/12-2:59:36.0930-[uniserve] << Port: 1723, low-level writing: 896
17/12-2:59:36.1090-[uniserve] Calling >on-write-done<

17/12-2:59:36.1250-[uniserve] >> Port: 1723, low-level reading: 13

17/12-2:59:36.1250-[uniserve] Calling >on-received< with {^@^@^@^-}

17/12-2:59:36.1400-[uniserve] Calling >on-received< with "[ok none]"

17/12-2:59:36.1400-## Error in [uniserve] : On-received call failed 
with error: make object! [
    code: 303
    type: 'script
    id: 'expect-arg
    arg1: 'copy
    arg2: 'value
    arg3: [series! port! bitset!]
    near: [either "HTTP" = copy/part data]
    where: 'on-task-done
] !
17/12-2:59:36.1710-[uniserve] Port closed : 127.0.0.1
data
 is somehow none.
The error happens in on-task-done event function:


 on-task-done: func [data /local valid out value ctype body headers 
 s e][
		either "HTTP" = copy/part data 4 [  ;<<<<<<<<<<
			;--- Non Parsed Header output ---
			write-client data
		][
			;--- Parsed Header output ---
			out: ctype: line: none
Endo
19-Dec-2011
[720:last]
Problem solved. Thanks Doc.