summaryrefslogtreecommitdiffstats
path: root/vendor/textalk/websocket/lib/Message/Factory.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/textalk/websocket/lib/Message/Factory.php')
-rw-r--r--vendor/textalk/websocket/lib/Message/Factory.php25
1 files changed, 25 insertions, 0 deletions
diff --git a/vendor/textalk/websocket/lib/Message/Factory.php b/vendor/textalk/websocket/lib/Message/Factory.php
new file mode 100644
index 0000000..31df89c
--- /dev/null
+++ b/vendor/textalk/websocket/lib/Message/Factory.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace WebSocket\Message;
+
+use WebSocket\BadOpcodeException;
+
+class Factory
+{
+ public function create(string $opcode, string $payload = ''): Message
+ {
+ switch ($opcode) {
+ case 'text':
+ return new Text($payload);
+ case 'binary':
+ return new Binary($payload);
+ case 'ping':
+ return new Ping($payload);
+ case 'pong':
+ return new Pong($payload);
+ case 'close':
+ return new Close($payload);
+ }
+ throw new BadOpcodeException("Invalid opcode '{$opcode}' provided");
+ }
+}