나는 파이썬 서버에서 HTML5 캔버스로 이미지를 표시하기 위해 websockify
을 사용하고 있습니다.websocket을 통해 이미지 받기
필자는 성공적으로 내 파이썬 서버에서 이미지를 보내지만 내 캔버스에 이미지를 표시 할 수 없다고 생각합니다.
문제는 캔버스에 표시하려고하는 바이트 수와 관련이 있으며 전체 이미지를받은 다음 이미지를 캔버스에 표시 할 때까지 기다리지 않고 있다고 생각합니다.
는 지금까지 내가 가진 :
메시지에 기능. 내가 이미지를 보냈을 때 내가 문자열을 받아 내가 캔버스에 표시하려고 어디 콘솔
ws.on('message', function() {
//console.log("MESSAGERECEIVED!")
msg(ws.rQshiftStr());
});
MSG 기능 12 MESSAGERECEIVED
를 얻을. 각 그림마다 12 번씩이 방법을 사용합니다. 이 문제를 해결하는 방법에 대한
function msg(str) {
//console.log(str);
console.log("RELOAD");
var ctx = cv.getContext('2d');
var img = new Image();
//console.log(str);
img.src = "data:image/png;base64," + str;
img.onload = function() {
ctx.drawImage(img,0,0);
}
}
어떤 제안 : 쏘는의 형식은 'xÙõKþ°pãüCY
입니까?
클라이언트가 hybi 초안을 지원하지 않으면 이미지를 base64로 웹 소켓을 통해 전송하면 안됩니다. Base64는 33 %의 오버 헤드를 발생시킵니다. 따라서 바이너리로 보내는 것이 바람직합니다. – einaros
'websockify '는 그것을 통해 전달 된 모든 것을 base64로 변환한다고 생각합니다. – glarkou
그럴 경우, 그건 끔찍한 일입니다. 다른 websocket 구현을 찾으십시오. – einaros