@@ -9,7 +9,6 @@ var WebSocketLibrary =
99 * {
1010 * url: string,
1111 * ws: WebSocket,
12- * binaryType: string,
1312 * subProtocols: string[],
1413 * }
1514 */
@@ -21,6 +20,7 @@ var WebSocketLibrary =
2120 /* Event listeners */
2221 onOpen : null ,
2322 onMessage : null ,
23+ onMessageStr : null ,
2424 onError : null ,
2525 onClose : null
2626 } ,
@@ -46,7 +46,7 @@ var WebSocketLibrary =
4646 } ,
4747
4848 /**
49- * Set onMessage callback
49+ * Set onMessageStr callback
5050 *
5151 * @param callback Reference to C# static function
5252 */
@@ -80,15 +80,13 @@ var WebSocketLibrary =
8080 *
8181 * @param url Server URL
8282 */
83- WebSocketAllocate : function ( urlPtr , binaryTypePtr )
83+ WebSocketAllocate : function ( urlPtr )
8484 {
8585 var url = UTF8ToString ( urlPtr ) ;
86- var binaryType = UTF8ToString ( binaryTypePtr ) ;
8786 var id = ++ webSocketManager . lastId ;
8887 webSocketManager . instances [ id ] = {
8988 url : url ,
9089 ws : null ,
91- binaryType : binaryType
9290 } ;
9391
9492 return id ;
@@ -107,7 +105,7 @@ var WebSocketLibrary =
107105
108106 var protocol = UTF8ToString ( protocolPtr ) ;
109107
110- if ( instance . subProtocols == null )
108+ if ( instance . subProtocols == null )
111109 instance . subProtocols = [ ] ;
112110
113111 instance . subProtocols . push ( protocol ) ;
@@ -149,13 +147,11 @@ var WebSocketLibrary =
149147 if ( ! instance ) return - 1 ;
150148 if ( instance . ws !== null ) return - 2 ;
151149
152- if ( instance . subProtocols != null )
150+ if ( instance . subProtocols != null )
153151 instance . ws = new WebSocket ( instance . url , instance . subProtocols ) ;
154152 else
155153 instance . ws = new WebSocket ( instance . url ) ;
156154
157- instance . ws . binaryType = instance . binaryType ;
158-
159155 instance . ws . onopen = function ( )
160156 {
161157 Module . dynCall_vi ( webSocketManager . onOpen , instanceId ) ;
@@ -177,7 +173,21 @@ var WebSocketLibrary =
177173 _free ( buffer ) ;
178174 }
179175 }
180- else if ( ev . data instanceof Blob )
176+ else if ( typeof ev . data == 'string' )
177+ {
178+ var length = lengthBytesUTF8 ( ev . data ) + 1 ;
179+ var buffer = _malloc ( length ) ;
180+ stringToUTF8 ( ev . data , buffer , length ) ;
181+ try
182+ {
183+ Module . dynCall_vii ( webSocketManager . onMessageStr , instanceId , buffer ) ;
184+ }
185+ finally
186+ {
187+ _free ( buffer ) ;
188+ }
189+ }
190+ else if ( typeof Blob !== 'undefined' && ev . data instanceof Blob )
181191 {
182192 var reader = new FileReader ( ) ;
183193 reader . onload = function ( )
@@ -197,20 +207,6 @@ var WebSocketLibrary =
197207 } ;
198208 reader . readAsArrayBuffer ( ev . data ) ;
199209 }
200- else if ( typeof ev . data == 'string' )
201- {
202- var length = lengthBytesUTF8 ( ev . data ) + 1 ;
203- var buffer = _malloc ( length ) ;
204- stringToUTF8 ( ev . data , buffer , length ) ;
205- try
206- {
207- Module . dynCall_vii ( webSocketManager . onMessageStr , instanceId , buffer ) ;
208- }
209- finally
210- {
211- _free ( buffer ) ;
212- }
213- }
214210 else
215211 {
216212 console . log ( "[JSLIB WebSocket] not support message type: " , ( typeof ev . data ) ) ;
@@ -273,7 +269,7 @@ var WebSocketLibrary =
273269 {
274270 instance . ws . close ( code , reason ) ;
275271 }
276- catch ( err )
272+ catch ( err )
277273 {
278274 return - 7 ;
279275 }
@@ -295,7 +291,12 @@ var WebSocketLibrary =
295291 if ( instance . ws === null ) return - 3 ;
296292 if ( instance . ws . readyState !== 1 ) return - 6 ;
297293
298- instance . ws . send ( buffer . slice ( bufferPtr , bufferPtr + length ) ) ;
294+ if ( typeof HEAPU8 !== 'undefined' )
295+ instance . ws . send ( HEAPU8 . buffer . slice ( bufferPtr , bufferPtr + length ) ) ;
296+ else if ( typeof buffer !== 'undefined' )
297+ instance . ws . send ( buffer . slice ( bufferPtr , bufferPtr + length ) ) ;
298+ else
299+ return - 8 ; // not support buffer slice
299300
300301 return 0 ;
301302 } ,
0 commit comments