2011-02-02 29 views
0

我正在玩websockets,我注意到當我的服務器發送消息給客戶端時,消息前面還有一個額外的'[]'字符。這阻止JS正確解析json。[] WebSocket消息前面的字符?

任何想法這個字符是什麼?

+0

好的我剛剛發現它實際上是我正在使用的庫的一部分。出於某種原因,作者在PHP中使用chr(0)和chr(255)來包裝字符串。任何人都知道這是什麼意思? – 2011-02-02 21:57:18

+0

我可以問,你使用哪個服務器? – ayk 2011-04-01 05:16:26

回答

1

除了客戶端和服務器之間的HTTP狀握手,從與「\ X0」開始的每個消息,並用「\ XFF」端。

在未來的WebSockets協議草案(03/76以後)中,成幀分隔符已被包含前導長度和尾隨特殊字符的成幀取代。

0

那些正在分隔字符來標記開始和結束。

最佳

拉斐爾

1

找到了解決辦法:由JS,只是使用JavaScript 例子的替換功能,假定味精是

msg = $.parseJSON(msg.data.replace('\0', '')); 

或者沒有通過jQuery的功能websocket.message返回的字符串:

msg = JSON.parse(msg.data.replace('\0', '')); 

希望有人會發現這有幫助。

1

你(客戶)在msg中看到這個\ x00分隔符並不好!

正常情況下,您的消息看起來像這樣\ x00 MSG \ xFF。 \ x00和\ xFF會在客戶端被切斷,所以服務器端一定有問題......看,你不會包裝你的消息兩次!