Content deleted Content added
m americanized spelling of "-ised" word, added Oxford comma Tags: Reverted Visual edit Newcomer task Newcomer task: copyedit |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 35:
Routers can define realms as administrative domains, and clients must specify which realm they want to join upon connection. Once joined, the realm will act as a [[namespace]], preventing clients connected to a realm from using IDs defined in another for RPC and PubSub. Realms also have permissions attached and can limit the clients to one subset of the REGISTER/CALL/PubSub actions available.
Some realms can only be joined by authenticated clients, using various authentication methods such as using [[X.509|TLS certificate]], [[HTTP cookie|cookies]]
===Routed RPCs===
Line 58:
! Language
|-
|
| [[JavaScript]] for the [[AngularJS]] framework
|-
|
| [[C++]] 11
|-
| wamplv
| [[LabVIEW]] (G)
|-
|
| JavaScript ([[Web browser|browser]] and [[Node.js]])
|-
|
| [[Python (programming language)|Python]]
|-
| wampy
| [[Python (programming language)|Python]]
|-
|
| [[Perl]]
|-
|
| JavaScript for the [[Backbone.js]] library
|-
|
| C++ 11
|-
| Erwa
| [[Erlang (programming language)|Erlang]]
|-
| Jawampa
| [[Java (programming language)|Java]]
|-
| [|
| [[Lua (programming language)|Lua]]
|-
| MDWamp
| [[Objective-C]]
|-
| Minion
| [[PHP]]
|-
| rx.wamp
| JavaScript for the [[React (JavaScript library)|React]] library
|-
|
| PHP
|-
|
| C++
|-
| wampcc
| C++
|-
|
| [[C Sharp (programming language)|C#]]
|-
|
| JavaScript (browser only)
|-
| nexus
| [[Go (programming language)|Go]]
|}
The minimum requirements to build a WAMP client are the abilities to use sockets and to
However, the persistent nature of WebSocket connections requires the use of non-blocking libraries and [[Asynchronous I/O|asynchronous]] [[Application programming interface|API]]s. In languages with one official mechanism such as JavaScript, Erlang or Go, this is not an issue. But for languages with several competing solutions for asynchronous programming, such as Python or PHP, it forces the client author to commit to a specific part of the ecosystem.
For the same reason, integrating legacy projects can also require work. As an example, most popular Web Python frameworks are using [[Web Server Gateway Interface|WSGI]], a synchronous API, and running a WAMP client inside a WSGI worker needs manual adapters such as
===Routers===
Line 139:
! Language
|-
| Bondy
| [[Erlang (programming language)|Erlang]]
|-
| Crossbar.io
| Python (CPython and [[PyPy]])
|-
| Erwa
| Erlang
|-
| wampcc
| C++
|-
| Jawampa
| Java
|-
|
| PHP
|-
| wamp.rt
| JavaScript (Node.js only)
|-
|
| C#
|-
| Wiola
| [[Lua (programming language)|Lua]]
|-
|
| JavaScript (Node.js only)
|-
| nexus
| [[Go (programming language)|Go]]
|}
Line 247:
|
|-
|
|
| {{ya}}
Line 351:
|
|-
|
|
|
|