Skip to content

Commit df35467

Browse files
committed
Updated tests
1 parent 0192e17 commit df35467

14 files changed

Lines changed: 488 additions & 176 deletions

File tree

demo/client.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Client, BinaryEncoder, UInt8Codec, UIntLongCodec, BooleanCodec, StringLongCodec } from 'netcode/client';
1+
import { Client, BinaryEncoder, UInt8Codec, UIntLongCodec, Int16Codec, BooleanCodec, StringLongCodec } from 'netcode/client';
22

33
window.addEventListener('load', () => {
44
const target = document.getElementById('output');
@@ -19,6 +19,7 @@ window.addEventListener('load', () => {
1919
['inverse', new BooleanCodec()],
2020
['greeting', new StringLongCodec()],
2121
['total', new UInt8Codec()],
22+
['int16', new Int16Codec()],
2223
]);
2324

2425

@@ -51,6 +52,12 @@ window.addEventListener('load', () => {
5152
console.info(`There is ${total} people connected.`);
5253
});
5354

55+
// Listen for a "int16" event
56+
client.on('int16', ({ detail: value }) => {
57+
console.info(`int16 codec: ${value}.`);
58+
client.send('int16', -32768);
59+
});
60+
5461
// Listen for an "inverse" event
5562
client.on('inverse', ({ detail: status }) => {
5663
// Answer with an "inverse" event
@@ -59,7 +66,6 @@ window.addEventListener('load', () => {
5966

6067
// Send a "greeting" event
6168
client.send('greeting', 'Hello, I\'m client 😊! Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut imperdiet molestie libero, ut sollicitudin tortor dignissim quis. Nulla iaculis nisi turpis, a malesuada nibh faucibus a. Nunc tellus lorem, varius sit amet tellus eu, dictum consectetur nulla.');
62-
// client.send('greeting', 'Hi!');
6369
});
6470

6571
// Listen for a "greeting" event
@@ -70,7 +76,7 @@ window.addEventListener('load', () => {
7076
// Listen for oppening connection
7177
client.on('open', () => {
7278
console.info('Connection open.');
73-
setTimeout(() => client.close(1000, 'All good :)'), 20 * 1000);
79+
setTimeout(() => client.close(1000, 'All good :)'), 10 * 1000);
7480
});
7581

7682
// Listen for connection close

demo/server.go

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ func main() {
2121

2222
encoder := netcode.CreateBinaryEncoder([]*netcode.RegisteredCodec{
2323
{0, "id", netcode.UInt8Codec{}},
24-
{1, "ping", netcode.UIntLongCodec{6}},
25-
{2, "pong", netcode.UIntLongCodec{6}},
26-
{3, "inverse", netcode.BooleanCodec{}},
27-
{4, "greeting", netcode.StringLongCodec{}},
28-
{5, "total", netcode.UInt8Codec{}},
24+
{0, "ping", netcode.UIntLongCodec{6}},
25+
{0, "pong", netcode.UIntLongCodec{6}},
26+
{0, "inverse", netcode.BooleanCodec{}},
27+
{0, "greeting", netcode.StringLongCodec{}},
28+
{0, "total", netcode.UInt8Codec{}},
29+
{0, "int16", netcode.Int16Codec{}},
2930
}, netcode.UInt8Codec{})
3031

3132
demo := Demo{
@@ -34,8 +35,8 @@ func main() {
3435

3536
go demo.run()
3637

37-
netcode.Start(*port, "/", func(conn *websocket.Conn, request *http.Request) {
38-
socket, err := demo.sockets.Add(conn)
38+
netcode.Start(*port, "/", func(w http.ResponseWriter, r *http.Request, c *websocket.Conn) {
39+
socket, err := demo.sockets.Add(c)
3940

4041
if err != nil {
4142
log.Fatal(err)
@@ -46,7 +47,7 @@ func main() {
4647
})
4748

4849
demo.onClientJoin(socket)
49-
})
50+
}, netcode.CheckOrigin, netcode.ErrorHandler)
5051
}
5152

5253
func (demo *Demo) run() {
@@ -59,19 +60,13 @@ func (demo *Demo) run() {
5960
demo.handlePing(m.Socket, m.Message)
6061
case "greeting":
6162
demo.handleGreeting(m.Socket, m.Message)
63+
case "int16":
64+
demo.handleInt16(m.Socket, m.Message)
6265
default:
6366
log.Printf("[socket #%d] '%s': %v", m.Socket.ID, m.Message.Name, m.Message.Data)
6467
}
6568
case socket := <-demo.sockets.Out:
6669
demo.onClientLeave(socket)
67-
// switch e.Name {
68-
// case "socket:join":
69-
// demo.onClientJoin(e.Data.(*netcode.Socket))
70-
// case "socket:leave":
71-
// demo.onClientLeave(e.Data.(*netcode.Socket))
72-
// default:
73-
// log.Printf("event '%s': %v", e.Name, e.Data)
74-
// }
7570
}
7671
}
7772
}
@@ -86,6 +81,8 @@ func (demo *Demo) onClientJoin(s *netcode.Socket) {
8681
log.Printf("Client #%d joined.", s.ID)
8782
s.Send(&netcode.Message{"id", uint8(s.ID)})
8883
demo.broadcastTotal()
84+
85+
s.Send(&netcode.Message{"int16", int16(math.MaxInt16)})
8986
}
9087

9188
func (demo *Demo) onClientLeave(s *netcode.Socket) {
@@ -94,12 +91,16 @@ func (demo *Demo) onClientLeave(s *netcode.Socket) {
9491
}
9592

9693
func (demo *Demo) handlePing(s *netcode.Socket, m *netcode.Message) {
97-
log.Printf("Client #%d ping: %d.", s.ID, m.Data)
94+
log.Printf("Client #%d ping: %d.", s.ID, m.Data.(uint))
9895
s.Send(&netcode.Message{"pong", uint(time.Now().UnixMilli())})
9996
s.Send(&netcode.Message{"inverse", true})
10097
}
10198

10299
func (demo *Demo) handleGreeting(s *netcode.Socket, m *netcode.Message) {
103-
log.Printf("Client #%d greets you: '%s'.", s.ID, m.Data)
100+
log.Printf("Client #%d greets you: '%s'.", s.ID, m.Data.(string))
104101
s.Send(&netcode.Message{"greeting", "Hello, I'm server! 😊 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut imperdiet molestie libero, ut sollicitudin tortor dignissim quis. Nulla iaculis nisi turpis, a malesuada nibh faucibus a. Nunc tellus lorem, varius sit amet tellus eu, dictum consectetur nulla."})
105102
}
103+
104+
func (demo *Demo) handleInt16(s *netcode.Socket, m *netcode.Message) {
105+
log.Printf("Client #%d sends int16: %d.", s.ID, m.Data.(int16))
106+
}

demo/server.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
BinaryEncoder,
44
UInt8Codec,
55
UIntLongCodec,
6+
Int16Codec,
67
BooleanCodec,
78
StringLongCodec,
89
} from 'netcode/server';
@@ -15,6 +16,7 @@ const encoder = new BinaryEncoder([
1516
['inverse', new BooleanCodec()],
1617
['greeting', new StringLongCodec()],
1718
['total', new UInt8Codec()],
19+
['int16', new Int16Codec()],
1820
]);
1921

2022
// Create the server
@@ -47,10 +49,17 @@ server.on('client:join', client => {
4749
client.send('greeting', 'Hello, I\'m server! 😊 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut imperdiet molestie libero, ut sollicitudin tortor dignissim quis. Nulla iaculis nisi turpis, a malesuada nibh faucibus a. Nunc tellus lorem, varius sit amet tellus eu, dictum consectetur nulla.');
4850
});
4951

52+
// Listen for "int16" event
53+
client.on('int16', message => {
54+
console.info('Client %s sends int16: %s', client.id, message);
55+
});
56+
5057
// Send event "id" to the client
5158
client.send('id', client.id);
5259

5360
broadcastTotal();
61+
62+
client.send('int16', 32767);
5463
});
5564

5665
// Listen for disconnecting clients
File renamed without changes.

go/Int16Codec.go renamed to go/codec_int16.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ func (c Int16Codec) Encode(buffer *bytes.Buffer, data any) {
1414

1515
func (c Int16Codec) Decode(buffer *bytes.Buffer) any {
1616
var data int16
17-
binary.Read(buffer, binary.BigEndian, data)
17+
binary.Read(buffer, binary.BigEndian, &data)
1818
return data
1919
}

go/codec_int32.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package netcode
2+
3+
import (
4+
"bytes"
5+
"encoding/binary"
6+
)
7+
8+
type Int32Codec struct {
9+
}
10+
11+
func (c Int32Codec) Encode(buffer *bytes.Buffer, data any) {
12+
binary.Write(buffer, binary.BigEndian, data.(int32))
13+
}
14+
15+
func (c Int32Codec) Decode(buffer *bytes.Buffer) any {
16+
var data int32
17+
binary.Read(buffer, binary.BigEndian, &data)
18+
return data
19+
}

go/codec_int64.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package netcode
2+
3+
import (
4+
"bytes"
5+
)
6+
7+
type Int64Codec struct {
8+
}
9+
10+
func (c Int64Codec) Encode(buffer *bytes.Buffer, data any) {
11+
buffer.WriteByte(byte(data.(int64)))
12+
}
13+
14+
func (c Int64Codec) Decode(buffer *bytes.Buffer) any {
15+
return int64(buffer.Next(1)[0])
16+
}

0 commit comments

Comments
 (0)