Sockets » History » Version 1
Denis Kildishev, 08/24/2022 08:50 PM
1 | 1 | Denis Kildishev | h1. Web Sockets |
---|---|---|---|
2 | |||
3 | Now requality starts several web sockets for different editors. Current mapping is |
||
4 | |||
5 | markup editor: 9920 |
||
6 | Requirements editor1 (unieditor): 9921 |
||
7 | Report view (reportView): 9922; |
||
8 | Requirements editor2 (moduleeditor): 9923 |
||
9 | Requirements editor1 (review, in read-only mode): 9924 |
||
10 | |||
11 | Web sockets uses JSON in messages. |
||
12 | |||
13 | Common format of client-server request includes |
||
14 | {"operation":"{op}", "location":"{loc}","session":"{sess}"} |
||
15 | where {op} is the name of operation(for ex. "init"), |
||
16 | {loc} is uri like http://localhost:9807/SMiqI3pGjPql/documents/stpo::6bc8a38f-45ba-4c82-bba8-db0c74e06125//?inTool=1&port=9920&document=6bc8a38f-45ba-4c82-bba8-db0c74e06125&session=4741003328181833534& |
||
17 | {sess} is generated session identification, for ex. 4741003328181833534 |
||
18 | |||
19 | Requests may also include more parameters like, for example, init uses parameter "document", |
||
20 | like "document":"6bc8a38f-45ba-4c82-bba8-db0c74e06125" |
||
21 | Each new connection to server requires first call of init operation. |
||
22 | As an full example may be |
||
23 | {"operation":"init", "location":"http://localhost:9807/SMiqI3pGjPql/documents/stpo::6bc8a38f-45ba-4c82-bba8-db0c74e06125//?inTool=1&port=9920&document=6bc8a38f-45ba-4c82-bba8-db0c74e06125&session=4741003328181833534&","session":"4741003328181833534", "document":"6bc8a38f-45ba-4c82-bba8-db0c74e06125"} |
||
24 | or for one more editor |
||
25 | {"operation":"init", "location":"http://localhost:9807/r4AV8F78228D/reports/stpo::33cfa331-7d99-47e3-9c4a-0455df4101b5/jetos-reqs.stpo2.html?inTool=1&port=9922&document=33cfa331-7d99-47e3-9c4a-0455df4101b5&session=8974468582254662369&","session":"8974468582254662369", "document":"33cfa331-7d99-47e3-9c4a-0455df4101b5"} |
||
26 | |||
27 | Server-client messages are mostly formed as follows: |
||
28 | {"operation":"{op}", "data":{data}} |
||
29 | where op is the name of operation(for example, update of selection listed below) |
||
30 | and {data} is an json object storing all passed data according to operation kind |
||
31 | for example, |
||
32 | {"data":{"nextId":"011","requirementId":"Requirements","requirementUUID":"4e24f8a1-22b8-40b7-b406-01acc4d89d52"},"operation":"updateSelection"} |
||
33 | |||
34 | h1. Resources provider |
||
35 | Resources(and editors) are available at port 9807. URI is formed mostly according to given template: |
||
36 | http://{ip}:9807/{appSessId}/{editor}/{project}::{nodeUUId}/{resPath}?{params} |
||
37 | where ip is ip address of server(commonly localhost) |
||
38 | appSessId - randomly generated on app start string |
||
39 | editor - one of set{markup,unieditor,reportView,moduleeditor,review} |
||
40 | project - name of project |
||
41 | nodeUUId - id of node where editor needs to be openned |
||
42 | resPath - path to resources. For documents resources(markup) were provided from corresponding document. Default path points at document xhtml file. If uri points at resource like /image.png it will be taken from corresponding resources folder of node. But if some commonly used resource like jquery is requested then it will be loaded from plugin folder jstools(used to load ckeditor and jquery and so on). |
||
43 | params - set of additional parameters passed to script. For example, ?inTool=1&port=9922&document=33cfa331-7d99-47e3-9c4a-0455df4101b5&session=8974468582254662369& - port is socket port, document - uuid of node and session is session identification, isTool - param used to determine if editor was started from eclipse |
||
44 | As example can be URL for markup |
||
45 | http://localhost:9807/r4AV8F78228D/reports/stpo::33cfa331-7d99-47e3-9c4a-0455df4101b5/jetos-reqs.stpo2.html?inTool=1&port=9922&document=33cfa331-7d99-47e3-9c4a-0455df4101b5&session=8974468582254662369& |