首先使用node.js 搭建一個簡易的 websocket服務(wù)器:
德宏州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
var cons = new Array();var ws = require('ws').Server;var server = new ws({ port: 8888 });server.on('connection', function (ws) {console.log('new connection founded successfully');cons.push(ws);ws.on('message', function (data) {for (var i = 0; i cons.length; i++) {cons[i].send(data);}});ws.on('close', function () {for (var i = 0; i cons.length; i++) {if (cons[i] == ws) cons.splice(i, 1);}});});console.log('websocket-server running...');
接下來為了更容易理解, 我在這分為兩個頁面,一個為視頻者頁面,另一個是觀看者頁面
下面代碼為視頻者頁面:
!DOCTYPE htmlhtml xmlns=""headmeta http-equiv="Content-Type" content="text/html; charset=utf-8" /title/titlescript src="jQuery_1.8.2.min.js"/scriptscript type="text/javascript"$(function () {var video = document.getElementById("video");var canvas = document.getElementById("canvas"),context = canvas.getContext("2d");var w;if (navigator.webkitGetUserMedia) {navigator.webkitGetUserMedia({ video: true }, function (stream) {video.src = window.webkitURL.createObjectURL(stream);video.play();w = new WebSocket(url);w.onopen = function () {sendImg();}w.onmessage = function (e) {sendImg();}}, function () {console.log("video error");});var host = 'localhost';var port = 8888;var url = 'ws://' + host + ':' + port + '/';function sendImg() {context.drawImage(video, 0, 0, 320, 320);var imgData = canvas.toDataURL();w.send(imgData);}}});/script/headbodyvideo id="video" width="640" height="480" style="background:#000;" autoplay/videocanvas style="display:none" id="canvas" width="320" height="320"/canvas/body/html
接下來是觀看者頁面:
!DOCTYPE htmlhtml xmlns=""headmeta http-equiv="Content-Type" content="text/html; charset=utf-8" /title/titlescript src="jQuery_1.8.2.min.js"/scriptscript$(function () {var host = 'localhost';var port = 8888;var url = 'ws://' + host + ':' + port + '/';var w = new WebSocket(url);w.onmessage = function (e) {$("#canvas").attr("src", e.data);}});/script/headbodyimg id="canvas" width="320" height="320" / /body/html注:希望可以幫到你!
linux服務(wù)器上搭一個支持websocket的web服務(wù)器環(huán)境,其他的就差不多了。
可以看看php例子,workman
應(yīng)該是執(zhí)行順序的問題,先執(zhí)行機(jī)器人的回復(fù),再執(zhí)行滾到底部的代碼
!DOCTYPE html
html xmlns=""
head
title/title
script type="text/javascript"
var wsServer = 'ws://localhost:9999/webSocket.ashx'; //基于.NET4.5服務(wù)器地址
//var wsServer = 'ws://localhost:1818'; //基于.NET服務(wù)器地址
var websocket = new WebSocket(wsServer); //創(chuàng)建WebSocket對象
//websocket.send("hello");//向服務(wù)器發(fā)送消息
//alert(websocket.readyState);//查看websocket當(dāng)前狀態(tài)
websocket.onopen = function (evt) {
//已經(jīng)建立連接
alert("已經(jīng)建立連接");
};
websocket.onclose = function (evt) {
//已經(jīng)關(guān)閉連接
alert("已經(jīng)關(guān)閉連接");
};
websocket.onmessage = function (evt) {
//收到服務(wù)器消息,使用evt.data提取
evt.stopPropagation()
evt.preventDefault()
//alert(evt.data);
writeToScreen(evt.data);
//websocket.close();
};
websocket.onerror = function (evt) {
//產(chǎn)生異常
//alert(evt.message);
writeToScreen(evt.message);
};
function sendMsg() {
if (websocket.readyState == websocket.OPEN) {
msg = document.getElementById("msg").value;
websocket.send(msg);
writeToScreen("發(fā)送成功!");
} else {
writeToScreen("連接失敗!");
}
}
function writeToScreen(message) {
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML += message;
output.appendChild(pre);
}
/script
/head
body
div
input type="text" id="msg" value="beyond is number one!" /
button onclick="sendMsg()"send/button
/div
div id="output"/div
/body
/html
H5edu實訓(xùn)html5開發(fā)解答
推薦使用websocket,這個東西比較新,用node做后臺,比較靠譜,建議可以研究一下這方面的技術(shù),node有一個socket.IO的插件,挺好用。
你是說點擊發(fā)送就馬上顯示信息???
說下基本思路。。。
1、點擊發(fā)送的時候把文本框的內(nèi)容提交到后臺。
2、當(dāng)后臺處理反饋成功,做相應(yīng)的反饋。
3、這里可以有兩種方法
1)后臺返回成功以后就把內(nèi)容節(jié)點追加到聊天窗口
2)后臺返回成功以后就直接刷新聊天窗口(前提是你聊天窗口有取后臺數(shù)據(jù))
新聞標(biāo)題:html5聊天,h5 聊天
分享鏈接:http://jinyejixie.com/article24/dsecoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、面包屑導(dǎo)航、域名注冊、網(wǎng)頁設(shè)計公司、微信小程序、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)