Skip to content

Commit

Permalink
Merge branch 'issue_58' of github.com:GsDevKit/zinc into issue_58
Browse files Browse the repository at this point in the history
  • Loading branch information
dalehenrich committed Nov 17, 2014
2 parents 407fc82 + 72520f4 commit 3dc65e3
Show file tree
Hide file tree
Showing 18 changed files with 47 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ startServerOn: port do: handler
"Start and return a new ZnServer listening on port and / for client WebSocket connections.
After a successful initial handshake, sent #value: to handler with a server side ZnWebSocket instance."

^ self startServerOn: port prefix: nil do: handler
^ self startServerOn: port prefix: nil do: handler
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ initialize-release
logToTranscript
"Setup logging to the Transcript"

self log addListener: ZnTranscriptLogger new
self log addListener: ZnTranscriptLogger new
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ initialize-release
onStream: socketStream
"Initialize the receiver on socketStream"

stream := socketStream
stream := socketStream
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ pong: payload

| frame |
frame := ZnWebSocketFrame pong: payload.
self sendFrame: frame
self sendFrame: frame
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ signalClosed: frame
frame isEmpty
ifFalse: [
exception
code: frame closeCode;
code: frame closeCode asString;
reason: frame closeReason ].
exception signal.
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
"sendMessage:" : "SvenVanCaekenberghe 8/21/2012 21:22",
"sendText:" : "SvenVanCaekenberghe 8/21/2012 20:45",
"sendTextFrames:" : "SvenVanCaekenberghe 8/21/2012 22:11",
"signalClosed:" : "SvenVanCaekenberghe 8/23/2012 12:03",
"signalClosed:" : "SebastianHeidbrink 11/03/2014 18:50",
"stream" : "SvenVanCaekenberghe 7/20/2012 15:50" } }
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
initialize-release
initialize
webSockets := OrderedCollection new.
lock := Mutex new
lock := TransientMutex new
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"clientHtml" : "SvenVanCaekenberghe 10/13/2012 20:54" },
"instance" : {
"distributeMessage:" : "SvenVanCaekenberghe 10/13/2012 17:41",
"initialize" : "SvenVanCaekenberghe 9/10/2012 11:33",
"initialize" : "sebastianheidbrink 11/05/2014 19:03",
"register:" : "SvenVanCaekenberghe 9/10/2012 11:35",
"unregister:" : "SvenVanCaekenberghe 9/10/2012 11:36",
"value:" : "SvenVanCaekenberghe 10/13/2012 17:42" } }
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ writeOn: stream
ifFalse: [
self assert: size < (2 raisedTo: 31).
stream nextPut: (byte + 127); nextPutAll: (size asByteArrayOfSize: 8) ] ].
self writeBodyOfSize: size on: stream
self writeBodyOfSize: size on: stream
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ value: webSocket
webSocket isConnected ] whileTrue ]
on: ConnectionClosed
do: [ webSocket log debug: 'Ignoring connection close' ].
webSocket log info: 'Stopping status streaming'
webSocket log info: 'Stopping status streaming'
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.25' message 'remove log instance variable from ZnWebSocketDelegate;use the new ZnCurrentServer value log instead' id 'f912c6ca-f295-4dec-9dc1-b47a877218e3' date '10 January 2013' time '3:59:18.54 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.24' message 'added fancier ZnWebSocketDelegate class>>#demoHtml front page to #installExamplesInServer:' id '07e7c6bc-cd48-4afa-a70f-33ef812c4c82' date '8 January 2013' time '1:54:14.486 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.23' message 'fixed client html/javascript code to use a ws:// uri relative to the page uri' id '26ce36c9-46c7-436e-bc3b-ba5e16ebd4c0' date '13 October 2012' time '8:56:13.08 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.22' message 'Added ZnWebSocketDelegate class>>#installExamplesInDefaultServer;Cleaned up logging:- added log support instance variable to ZnWebSocketDelegate and ZnWebSocket- refactored ZnWebSocketResponse with continuation block- added explicit ZnWebSocketDelegate>>#continuation' id 'b25d5a09-b334-4dcb-83b9-3893dbc53f32' date '13 October 2012' time '5:53:18.428 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.21' message 'improved robustness against #next returning nil on #atEnd by throwing ConnectionClosed in ZnWebSocketFrame>>#readFrom: (thx Jacob Wagner)' id '1a288db0-5969-4765-9d82-780e3425db96' date '17 September 2012' time '10:58:39.729 am' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.20' message 'fixed a typo' id '275ea0d1-e95a-468f-a209-9c322c2568a0' date '12 September 2012' time '9:16:16.204 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.19' message 'added some more comments' id 'e4ca1456-d8d8-4c3c-b4f2-9eaf066f4f20' date '12 September 2012' time '3:28:47.701 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.18' message 'extra documentation; re-categorizationadded ZnWebSocketDelegate class>>#handler:' id 'cf67dd6a-60a5-4c8b-a2ee-a078c318442c' date '11 September 2012' time '3:23:57.296 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.17' message 'add the use of a lock Mutex and #critical: sections to ZnWebSocketChatroomHandler;improved comments' id '803c38fc-9c49-45bc-9537-d813e58c8d75' date '10 September 2012' time '1:23:28.925 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.16' message 'html change' id '5b08ce9e-5075-42b3-9a3f-25c369c636be' date '7 September 2012' time '9:48:38.873 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.15' message 'minor code reformatting' id '484cbd72-d910-40c7-ac59-41e880ef5373' date '7 September 2012' time '9:38:50.67 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.14' message 'added ZnWebSocketStatusHandler example' id '34b9a4cc-24fc-48da-bfd0-fe87cbca88b4' date '7 September 2012' time '8:31:10.038 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.13' message 'moved the html generating methods around' id '857d3ddc-3254-48b3-818c-3621e55ebb98' date '7 September 2012' time '3:58:38.865 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.12' message 'Fixed a bug in ZnWebSocket>>#runWith: where non-existing nil messages where delivered whenever a socket timeout occurred;Added the ZnWebSocketChatroomHandler example;Made some core more robust;Added more comments' id 'c00cfb98-eba4-407b-901e-65168e6a1589' date '7 September 2012' time '2:42:28.261 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.11' message 'added some convencience ZnWebSocket class>>#startServerOn:[prefix:]do: methods;extended comments' id '46ad5865-182e-4ef1-a5ed-39423ddd646c' date '2 September 2012' time '8:56:40.567 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.10' message 'added ZnWebSocketDelegate class>>#map:to:' id '7a2e1f55-8ef9-472c-b334-20487a0caca2' date '27 August 2012' time '9:01:16.647 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.9' message 'refactoring of ZnWebSocket protocol code, introduction of ZnWebSocketClosed, and ZnWebSocket>>#runWith:' id 'b0a421a5-15b3-4982-bb63-f13dbc36ff8a' date '23 August 2012' time '12:05:13.868 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.8' message 'changed the semantics of ZnWebSocket>>#readFrame and #readMessage to throw ConnectionClosed when the other end closes;added prefix option to ZnWebSocketDelegate;refactored ZnWebSocketResponse>>#useConnection: to delegate to its handler;added new ZnWebSocketEchoHandler' id 'f48bf140-6ba9-4a88-817b-214f475675c0' date '22 August 2012' time '2:57:09.408 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.7' message 'debugging/extending ZnWebSocketFrame' id '559de1c2-4dfd-41a8-b4c7-122148388431' date '22 August 2012' time '11:16:31.244 am' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.6' message 'added ZnWebSocketFrame>>#isMasked' id '45287cf4-10ad-4a00-a353-d4c500d069a9' date '21 August 2012' time '10:44:32.849 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.5' message 'added multi-frame message sending' id '2b8b217e-7d2f-4592-8562-7c50bda1c090' date '21 August 2012' time '10:14:05.556 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.4' message 'added support for control protocol frames;refactoring' id '00fda542-814a-48a0-837b-fd091424a7f6' date '21 August 2012' time '9:30:44.136 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.3' message 'introduction of WebSocketFrame class;added role to WebSocket' id 'bc7296ef-0956-4e79-ab37-95d60f91dd61' date '21 August 2012' time '4:32:02.917 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.2' message 'first simple server code working' id '6fd1b1d2-7e22-4666-9707-c964698e6eae' date '21 August 2012' time '1:31:31.108 pm' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.1' message 'very simple client code working' id 'db0800b5-d196-4f8a-819d-d08249174b8d' date '3 August 2012' time '3:57:47.174 pm' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())
(name 'Zinc-WebSocket-Core-SebastianHeidbrink.26' message 'Gemstone 3.1.X port ' id '3c4311d8-69c2-47c8-95ae-ee61537df7aa' date '11/05/2014' time '19:48:05' author 'SebastianHeidbrink' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.25' message 'remove log instance variable from ZnWebSocketDelegate;use the new ZnCurrentServer value log instead' id 'f912c6ca-f295-4dec-9dc1-b47a877218e3' date '01/10/2013' time '03:59:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.24' message 'added fancier ZnWebSocketDelegate class>>#demoHtml front page to #installExamplesInServer:' id '07e7c6bc-cd48-4afa-a70f-33ef812c4c82' date '01/08/2013' time '01:54:14' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.23' message 'fixed client html/javascript code to use a ws:// uri relative to the page uri' id '26ce36c9-46c7-436e-bc3b-ba5e16ebd4c0' date '10/13/2012' time '08:56:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.22' message 'Added ZnWebSocketDelegate class>>#installExamplesInDefaultServer;Cleaned up logging:- added log support instance variable to ZnWebSocketDelegate and ZnWebSocket- refactored ZnWebSocketResponse with continuation block- added explicit ZnWebSocketDelegate>>#continuation' id 'b25d5a09-b334-4dcb-83b9-3893dbc53f32' date '10/13/2012' time '05:53:18' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.21' message 'improved robustness against #next returning nil on #atEnd by throwing ConnectionClosed in ZnWebSocketFrame>>#readFrom: (thx Jacob Wagner)' id '1a288db0-5969-4765-9d82-780e3425db96' date '09/17/2012' time '10:58:39' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.20' message 'fixed a typo' id '275ea0d1-e95a-468f-a209-9c322c2568a0' date '09/12/2012' time '09:16:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.19' message 'added some more comments' id 'e4ca1456-d8d8-4c3c-b4f2-9eaf066f4f20' date '09/12/2012' time '03:28:47' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.18' message 'extra documentation; re-categorizationadded ZnWebSocketDelegate class>>#handler:' id 'cf67dd6a-60a5-4c8b-a2ee-a078c318442c' date '09/11/2012' time '03:23:57' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.17' message 'add the use of a lock Mutex and #critical: sections to ZnWebSocketChatroomHandler;improved comments' id '803c38fc-9c49-45bc-9537-d813e58c8d75' date '09/10/2012' time '01:23:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.16' message 'html change' id '5b08ce9e-5075-42b3-9a3f-25c369c636be' date '09/07/2012' time '09:48:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.15' message 'minor code reformatting' id '484cbd72-d910-40c7-ac59-41e880ef5373' date '09/07/2012' time '09:38:50' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.14' message 'added ZnWebSocketStatusHandler example' id '34b9a4cc-24fc-48da-bfd0-fe87cbca88b4' date '09/07/2012' time '08:31:10' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.13' message 'moved the html generating methods around' id '857d3ddc-3254-48b3-818c-3621e55ebb98' date '09/07/2012' time '03:58:38' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.12' message 'Fixed a bug in ZnWebSocket>>#runWith: where non-existing nil messages where delivered whenever a socket timeout occurred;Added the ZnWebSocketChatroomHandler example;Made some core more robust;Added more comments' id 'c00cfb98-eba4-407b-901e-65168e6a1589' date '09/07/2012' time '02:42:28' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.11' message 'added some convencience ZnWebSocket class>>#startServerOn:[prefix:]do: methods;extended comments' id '46ad5865-182e-4ef1-a5ed-39423ddd646c' date '09/02/2012' time '08:56:40' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.10' message 'added ZnWebSocketDelegate class>>#map:to:' id '7a2e1f55-8ef9-472c-b334-20487a0caca2' date '08/27/2012' time '09:01:16' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.9' message 'refactoring of ZnWebSocket protocol code, introduction of ZnWebSocketClosed, and ZnWebSocket>>#runWith:' id 'b0a421a5-15b3-4982-bb63-f13dbc36ff8a' date '08/23/2012' time '12:05:13' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.8' message 'changed the semantics of ZnWebSocket>>#readFrame and #readMessage to throw ConnectionClosed when the other end closes;added prefix option to ZnWebSocketDelegate;refactored ZnWebSocketResponse>>#useConnection: to delegate to its handler;added new ZnWebSocketEchoHandler' id 'f48bf140-6ba9-4a88-817b-214f475675c0' date '08/22/2012' time '02:57:09' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.7' message 'debugging/extending ZnWebSocketFrame' id '559de1c2-4dfd-41a8-b4c7-122148388431' date '08/22/2012' time '11:16:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.6' message 'added ZnWebSocketFrame>>#isMasked' id '45287cf4-10ad-4a00-a353-d4c500d069a9' date '08/21/2012' time '10:44:32' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.5' message 'added multi-frame message sending' id '2b8b217e-7d2f-4592-8562-7c50bda1c090' date '08/21/2012' time '10:14:05' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.4' message 'added support for control protocol frames;refactoring' id '00fda542-814a-48a0-837b-fd091424a7f6' date '08/21/2012' time '09:30:44' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.3' message 'introduction of WebSocketFrame class;added role to WebSocket' id 'bc7296ef-0956-4e79-ab37-95d60f91dd61' date '08/21/2012' time '04:32:02' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.2' message 'first simple server code working' id '6fd1b1d2-7e22-4666-9707-c964698e6eae' date '08/21/2012' time '01:31:31' author 'SvenVanCaekenberghe' ancestors ((name 'Zinc-WebSocket-Core-SvenVanCaekenberghe.1' message 'very simple client code working' id 'db0800b5-d196-4f8a-819d-d08249174b8d' date '08/03/2012' time '03:57:47' author 'SvenVanCaekenberghe' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
testing
testChatroom
| webSocket1 message1 inbox1 webSocket2 message2 inbox2 |
ZnServer startDefaultOn: 1701.
ZnServer default
delegate: (ZnWebSocketDelegate map: 'ws-chatroom' to: ZnWebSocketChatroomHandler new).
ZnServer defaultServerClass initialize.
ZnServerStarter start: ZnServer
named: 'ZnWebSocketTestChatServer'
onPorts: #(1701)
delegate: (ZnWebSocketDelegate map: 'ws-chatroom' to: ZnWebSocketChatroomHandler new).
(Delay forSeconds: 3) wait.
webSocket1 := ZnWebSocket to: 'ws://localhost:1701/ws-chatroom'.
message1 := 'Message 1 @ ', TimeStamp now printString.
webSocket2 := ZnWebSocket to: 'ws://localhost:1701/ws-chatroom'.
Expand All @@ -18,4 +21,5 @@ testChatroom
self assert: (inbox2 includes: message2).
webSocket1 close.
webSocket2 close.
ZnServer stopDefault.
ZnServerStarter stopAndRemoveGemServerNamed: 'ZnWebSocketTestChatServer'.
(Delay forSeconds: 3) wait
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
testing
testEcho
| webSocket message |
ZnServer startDefaultOn: 1701.
ZnServer default
delegate: (ZnWebSocketDelegate map: 'ws-echo' to: ZnWebSocketEchoHandler new).
ZnServer defaultServerClass initialize.
ZnServerStarter start: ZnServer
named: 'ZnWebSocketTestEchoServer'
onPorts: #(1701)
delegate: (ZnWebSocketDelegate map: 'ws-chatroom' to: ZnWebSocketChatroomHandler new).
(Delay forSeconds: 3) wait.
webSocket := ZnWebSocket to: 'ws://localhost:1701/ws-echo'.
message := 'Greetings from Pharo Smalltalk @ ', TimeStamp now printString.
message := 'Greetings from Gemstone Smalltalk @ ', TimeStamp now printString.
webSocket sendMessage: message.
self assert: webSocket readMessage equals: message.
webSocket close.
ZnServer stopDefault.
ZnServerStarter stopAndRemoveGemServerNamed: 'ZnWebSocketTestEchoServer'.
(Delay forSeconds: 3) wait
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ testing
testEchoSecureWebSocketsDotOrg
| webSocket message |
webSocket := ZnWebSocket to: 'wss://echo.websocket.org'.
message := 'Greetings from Pharo Smalltalk @ ', TimeStamp now printString.
message := 'Greetings from Gemstone Smalltalk @ ', TimeStamp now printString.
webSocket sendMessage: message.
self assert: webSocket readMessage equals: message.
webSocket close.
webSocket close.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ testing
testEchoWebSocketsDotOrg
| webSocket message |
webSocket := ZnWebSocket to: 'ws://echo.websocket.org'.
message := 'Greetings from Pharo Smalltalk @ ', TimeStamp now printString.
message := 'Greetings from Gemstone Smalltalk @ ', TimeStamp now printString.
webSocket sendMessage: message.
self assert: webSocket readMessage equals: message.
webSocket close.
webSocket close.
Loading

0 comments on commit 3dc65e3

Please sign in to comment.