消息

时间:2015-05-15 06:12:21

标签: javascript websocket

我想使用WebSocket将鼠标位置发布到另一个设备(iphone ...),在将帖子发布到任何设备之后,它可以接收来自Web的消息,但它有一些奇怪的东西,它在消息的末尾有一些乱码

首先我使用prototype创建Socket并添加一些功能

var Socket = function(){
   this.ws = new WebSocket("ws://172.16.3.103:60001");
   this.ws.onopen = function() {
      console.log("[WebSocket#onopen]\n");
   }
   this.ws.onmessage = function(e) {
      console.log("[WebSocket#onmessage] Message: '" + e.data + "'\n");
   }
   this.ws.onclose = function() {
      console.log("[WebSocket#onclose]\n");
      self.ws = null ;
   }
}

Socket.prototype.send = function(data){
  console.log("send data to server")
  if (this.ws) {
     var convert = JSON.stringify(data,null,4);
     var senddata = "50001#" + convert + "@"
     senddata = senddata.replace(/(\n)+|(\r\n)+/g, "");
     console.log("send:",senddata)
     this.ws.send(senddata)
     this.ws.send("50001#*")
    }
}

Socket.prototype.close = function(){
    if (this.ws) {
        this.ws = null
    }
}
var socket = new Socket()

然后我从Canvas获取位置并使用websocket发送json消息(我将json转换为send函数中的jsonstring)

this.canvas.addEventListener('mousemove',function(event){ 
    var x = event.pageX-getBodyOffsetLeft(this), 
    y = event.pageY-getBodyOffsetTop(this); 
    self.onMouseMove({x:x,y:y}); 
    var dict1 = {"type":"move","x":x,"y":y}
    var newDict = {"name":"line","dict":dict1}
    socket.send(newDict)
},false); 

发送消息onmessage之后将运行回调 我在控制台中发现了一些奇怪的东西,大部分消息都在消息的末尾出现乱码

[WebSocket#onmessage] Message: '50001#{    "name": "line",    "dict": {        "type": "move",        "x": 313,        "y": 300    }}@�o[��n��-j��'

会发生什么?

0 个答案:

没有答案