Skip to content

Commit 95802b4

Browse files
committed
Web socket example added
1 parent 65e8190 commit 95802b4

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

Examples/Content/Scripts/helloJS.js

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,56 @@
44
const UMG = require('UMG')
55
const _ = require('lodash')
66
const uclass = require('uclass')().bind(this,global)
7+
8+
function tutorial_WebSocket() {
9+
// borrowed from https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String
10+
function ab2str(buf) {
11+
return String.fromCharCode.apply(null, new Uint16Array(buf));
12+
}
13+
function str2ab(str) {
14+
var buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char
15+
var bufView = new Uint16Array(buf);
16+
for (var i = 0, strLen = str.length; i < strLen; i++) {
17+
bufView[i] = str.charCodeAt(i);
18+
}
19+
return buf;
20+
}
21+
22+
let server = JavascriptWebSocketServer.Create(8080)
23+
server.OnConnected = (conn) => {
24+
console.log('client joined')
25+
conn.OnReceived = _ => {
26+
let ab = new ArrayBuffer(1024)
27+
memory.exec(ab,_ => {
28+
conn.CopyBuffer()
29+
console.log('received',ab2str(ab))
30+
})
31+
}
32+
}
33+
let client = JavascriptWebSocket.Connect("127.0.0.1:8080")
34+
client.OnConnected = _ => {
35+
console.log('connected to server')
36+
memory.exec(str2ab("Hello Websocket."),ab => {
37+
client.SendMemory(ab.byteLength)
38+
})
39+
}
40+
let alive = true
41+
42+
function tick() {
43+
if (!alive) return
44+
server.Tick()
45+
client.Tick()
46+
process.nextTick(tick)
47+
}
48+
49+
tick()
50+
51+
return __ => {
52+
server.Dispose()
53+
client.Dispose()
54+
alive = false
55+
}
56+
}
757

858
function tutorial_StaticMeshActor() {
959
console.log('creating a static mesh actor')
@@ -23,7 +73,8 @@
2373
}
2474

2575
let tutorials = {
26-
'Static mesh actor' : tutorial_StaticMeshActor
76+
'Static mesh actor' : tutorial_StaticMeshActor,
77+
'Web socket' : tutorial_WebSocket
2778
}
2879

2980
function Logger() {

0 commit comments

Comments
 (0)