Hello Roger!
I see what you mean with making things easier – it’s certainly a bit less to get your head around if there’s a single role implemented per client in a template. And when I first had a look at your suggestion, I immediately thought that this would be great for getting started with mixed language deployments beyond the JS + Python that we mostly cover.
The problem I see is that while each of these templates yields a single role, this means that none of them actually produce anything working. You get a Crossbar instance where something subscribes, but never receives an event, publishes but nobody receives, registers but is never called, and, worst of all, calls but only gets an error message.
The roles really only make sense in pairs – so maybe
pubsub:<language>
rpc:<language>
would be a simplification that makes sense. This would reduce the initial cognitive load while still fulfilling the central requirement that templates should produce working applications (however reduced in functionality they may be). It would not, however, do anything immediately for getting started with polyglot projects. For that we’d need something different from the present templating system which basically just copies file content. Something to think about, but I guess presently out of scope.
The other concern is not present, but future: How many templates should there be? When does the present simple list that Crossbar outputs in the shell when you do `crossbar templates` become unmanageable?
There’s need for discussion on this before we go ahead with adding what at present would be ten more templates.
Let me know what you think.
If we go ahead, then I’ll gladly get back to your offer of creating the templates (and thank you for offering in the first place!)
Regards,
Alex
--
You received this message because you are subscribed to the Google Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send an email to autobahnws+...@googlegroups.com.
To post to this group, send email to autob...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/autobahnws/e3b91139-7c96-4434-aae3-b7dbf58ee86c%40googlegroups.com.
Hi Roger!
The idea behind the templates really is to give you a working application to hack on. You do the `init`, start crossbar, do a test run and then start modifying things to your needs. Having this as just example code somewhere opens up the possibility of making mistakes in getting things to run – even a relatively simple process can have hidden depths when you don’t yet have an understanding for the full picture.
The templates are not meant to provide sample code snippets per se. You could use them for that, as you suggest, but then you’d have a lot of overhead (repeat use of the command line, snippets in different directories). Code samples are better kept somewhere with easy access to all of them. This is currently the Autobahn|Python repository (https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp), which is, admittedly, a bit hidden. They’re linked from the respective language documentations (e.g. for JS: http://autobahn.ws/js/examples_overview.html).
We have giving more context to the examples within the repository on our to-do list, i.e. add a brief readme to each with a very brief explanation of what this does and probably links to resources which are relevant (e.g. a section in the API documentation).
Once you’ve cloned the repository, you can just browse the code snippets in your editor of choice, and directly copy & paste them.
Anyway, that’s the workflow as we’ve intended it.
Could you maybe give me some input how, in your opinion, we might better communicate this?
I feel that at this point investing the time in making things clearer in the documentation makes more sense than putting effort in changing the templating process.
To view this discussion on the web visit https://groups.google.com/d/msgid/autobahnws/e13a3225-5f34-452f-85c1-c318f30e33d1%40googlegroups.com.
Hi Roger!
The idea behind the templates really is to give you a working application to hack on. You do the `init`, start crossbar, do a test run and then start modifying things to your needs.
an email to autobahnws+unsubscribe@googlegroups.com
<mailto:autobahnws+unsub...@googlegroups.com>.
To post to this group, send email to autob...@googlegroups.com
<mailto:autobahnws@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/autobahnws/e13a3225-5f34-452f-85c1-c318f30e33d1%40googlegroups.com
<https://groups.google.com/d/msgid/autobahnws/e13a3225-5f34-452f-85c1-c318f30e33d1%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "Autobahn" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/autobahnws/adVxOcyKx-E/unsubscribe.
To unsubscribe from this group and all its topics, send an email to autobahnws+unsubscribe@googlegroups.com.
To post to this group, send email to autob...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/autobahnws/54181018.5080201%40gmail.com.
Am 16.09.2014 13:39, schrieb Roger Erens:
Hi Alexander,
I'm really fine with your reasoning to provide a working example with
the templating system.
Until yesterday evening, I was trying to find out how to get an
application component that can be run apart from a router; all templates
include a router, right? So only after reading further down the page
A router is always required for running a WAMP based application.
The hello:python example (and all others) will therefor start 1 worker process with a router, and a 2nd worker process running the example component.
http://crossbar.io/docs/Python-Application-Components/
I found some (unfortunately outdated) example of a separate router and
component. These examples could use some pictures from the architecture
document :-)
I have updated above Wiki page. The app template _does_ start separate worker processes for a router and a container with the example Python application component.
3) yes, you already got it: you can run Crossbar nodes which only run components .. which then connect to a router external to the former Crossbar node
Sent from Mobile (Google Nexus 5)
--
You received this message because you are subscribed to the Google Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send an email to autobahnws+...@googlegroups.com.
To post to this group, send email to autob...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/autobahnws/CAMTMGpom_Yfj4hrdLcH771S4X_tZwbcAH4R47%3D0VNnGYaNNDMA%40mail.gmail.com.