File tree Expand file tree Collapse file tree 6 files changed +187
-0
lines changed
packages/rsocket-examples/src/webpack/simple Expand file tree Collapse file tree 6 files changed +187
-0
lines changed Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < meta charset ="utf-8 " />
5
+ < title > RSocket Webpack Example</ title >
6
+ </ head >
7
+ < body >
8
+ < h1 > RSocket Webpack Example</ h1 >
9
+ < div id ="output "> </ div >
10
+ </ body >
11
+ </ html >
Original file line number Diff line number Diff line change
1
+ import { RSocketConnector } from "rsocket-core" ;
2
+ import { WebsocketClientTransport } from "rsocket-websocket-client" ;
3
+
4
+ ( async ( ) => {
5
+ const outputDiv = document . querySelector ( "#output" ) ;
6
+
7
+ const connector = new RSocketConnector ( {
8
+ transport : new WebsocketClientTransport ( {
9
+ url : "ws://localhost:9090" ,
10
+ wsCreator : ( url ) => new WebSocket ( url ) ,
11
+ } ) ,
12
+ } ) ;
13
+
14
+ const rsocket = await connector . connect ( ) ;
15
+
16
+ rsocket . requestResponse (
17
+ {
18
+ data : Buffer . from ( "Hello World" ) ,
19
+ } ,
20
+ {
21
+ onError : ( e ) => reject ( e ) ,
22
+ onNext : ( payload , isComplete ) => {
23
+ const div = document . createElement ( "div" ) ;
24
+ div . textContent = `[${ new Date ( ) . toISOString ( ) } ] payload[data: ${
25
+ payload . data
26
+ } ; metadata: ${ payload . metadata } ]|${ isComplete } `;
27
+ outputDiv . appendChild ( div ) ;
28
+ } ,
29
+ onComplete : ( ) => {
30
+ const div = document . createElement ( "div" ) ;
31
+ div . textContent = `Stream completed...` ;
32
+ outputDiv . appendChild ( div ) ;
33
+ } ,
34
+ onExtension : ( ) => { } ,
35
+ }
36
+ ) ;
37
+ } ) ( ) ;
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " rsocket-examples-websocket-simple-client" ,
3
+ "version" : " 0.0.0" ,
4
+ "license" : " Apache-2.0" ,
5
+ "private" : true ,
6
+ "files" : [
7
+ " dist" ,
8
+ " LICENSE"
9
+ ],
10
+ "scripts" : {
11
+ "test" : " echo \" Error: no test specified\" && exit 1" ,
12
+ "build" : " webpack" ,
13
+ "serve" : " webpack serve"
14
+ },
15
+ "engines" : {
16
+ "node" : " ^16.17.0"
17
+ },
18
+ "devDependencies" : {
19
+ "buffer" : " ^6.0.3" ,
20
+ "rsocket-adapter-rxjs" : " ^1.0.0-alpha.4" ,
21
+ "rsocket-composite-metadata" : " ^1.0.0-alpha.3" ,
22
+ "rsocket-core" : " ^1.0.0-alpha.3" ,
23
+ "rsocket-websocket-client" : " ^1.0.0-alpha.3" ,
24
+ "webpack" : " ^5.74.0" ,
25
+ "webpack-cli" : " ^4.10.0" ,
26
+ "webpack-dev-server" : " ^4.11.0"
27
+ },
28
+ "dependencies" : {
29
+ "html-webpack-plugin" : " ^5.5.0"
30
+ }
31
+ }
Original file line number Diff line number Diff line change
1
+ const path = require ( "path" ) ;
2
+ const webpack = require ( "webpack" ) ;
3
+ const HtmlWebpackPlugin = require ( "html-webpack-plugin" ) ;
4
+
5
+ module . exports = {
6
+ entry : "./index.js" ,
7
+ mode : "development" ,
8
+ output : {
9
+ filename : "main.js" ,
10
+ path : path . resolve ( __dirname , "dist" ) ,
11
+ } ,
12
+ devtool : "source-map" ,
13
+ devServer : {
14
+ static : {
15
+ directory : path . join ( __dirname , "dist" ) ,
16
+ } ,
17
+ compress : false ,
18
+ port : 9000 ,
19
+ } ,
20
+ resolve : {
21
+ fallback : {
22
+ buffer : require . resolve ( "buffer/" ) ,
23
+ } ,
24
+ } ,
25
+ plugins : [
26
+ new HtmlWebpackPlugin ( {
27
+ template : "./index.html" ,
28
+ } ) ,
29
+ new webpack . ProvidePlugin ( {
30
+ Buffer : [ "buffer" , "Buffer" ] ,
31
+ } ) ,
32
+ ] ,
33
+ } ;
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " rsocket-examples-websocket-simple-server" ,
3
+ "version" : " 0.0.0" ,
4
+ "license" : " Apache-2.0" ,
5
+ "private" : true ,
6
+ "files" : [
7
+ " dist" ,
8
+ " LICENSE"
9
+ ],
10
+ "scripts" : {
11
+ "test" : " echo \" Error: no test specified\" && exit 1" ,
12
+ "start" : " node server.js"
13
+ },
14
+ "engines" : {
15
+ "node" : " ^16.17.0"
16
+ },
17
+ "dependencies" : {
18
+ "rsocket-adapter-rxjs" : " ^1.0.0-alpha.4" ,
19
+ "rsocket-composite-metadata" : " ^1.0.0-alpha.3" ,
20
+ "rsocket-core" : " ^1.0.0-alpha.3" ,
21
+ "rsocket-tcp-client" : " ^1.0.0-alpha.3" ,
22
+ "rsocket-tcp-server" : " ^1.0.0-alpha.3" ,
23
+ "rsocket-websocket-client" : " ^1.0.0-alpha.3" ,
24
+ "rsocket-websocket-server" : " ^1.0.0-alpha.3" ,
25
+ "ws" : " ~8.2.3"
26
+ },
27
+ "devDependencies" : {
28
+
29
+ }
30
+ }
Original file line number Diff line number Diff line change
1
+ const { RSocketServer } = require ( "rsocket-core" ) ;
2
+ const { WebsocketServerTransport } = require ( "rsocket-websocket-server" ) ;
3
+ const WebSocket = require ( "ws" ) ;
4
+
5
+ const port = 9090 ;
6
+
7
+ const server = new RSocketServer ( {
8
+ transport : new WebsocketServerTransport ( {
9
+ wsCreator : ( options ) => {
10
+ return new WebSocket . Server ( {
11
+ port : port ,
12
+ } ) ;
13
+ } ,
14
+ } ) ,
15
+ acceptor : {
16
+ accept : async ( ) => ( {
17
+ requestResponse : ( payload , responderStream ) => {
18
+ const timeout = setTimeout (
19
+ ( ) =>
20
+ responderStream . onNext (
21
+ {
22
+ data : Buffer . concat ( [ Buffer . from ( "Echo: " ) , payload . data ] ) ,
23
+ } ,
24
+ true
25
+ ) ,
26
+ 1000
27
+ ) ;
28
+ return {
29
+ cancel : ( ) => {
30
+ clearTimeout ( timeout ) ;
31
+ console . log ( "cancelled" ) ;
32
+ } ,
33
+ onExtension : ( ) => {
34
+ console . log ( "Received Extension request" ) ;
35
+ } ,
36
+ } ;
37
+ } ,
38
+ } ) ,
39
+ } ,
40
+ } ) ;
41
+
42
+ ( async ( ) => {
43
+ await server . bind ( ) ;
44
+ console . log ( `Server listening on port ${ port } ` ) ;
45
+ } ) ( ) ;
You can’t perform that action at this time.
0 commit comments