我想使用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��'
会发生什么?