精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

TogetherJS:Mozilla推出的實時協作工具

開發 項目管理
TogetherJS是這樣的一種服務,你能為一個已經存在的網站增加實時協作特性。使用這種工具,兩個或者更多的網站或者web應用訪問者能夠看到別人鼠標位置,單擊,追蹤他人的瀏覽記錄,一起編輯表單,觀看視頻,還能夠通過聲音以及WebRTC聊天。

我們來介紹一下TogetherJS,一個從Mozilla實驗室出來的實時協作工具。

TogetherJS是這樣的一種服務,你能為一個已經存在的網站增加實時協作特性。使用這種工具,兩個或者更多的網站或者web應用訪問者能夠看到別人鼠標位置,單擊,追蹤他人的瀏覽記錄,一起編輯表單,觀看視頻,還能夠通過聲音以及WebRTC聊天。

TogetherJS包括這樣一些特性:

  • 查看他人的鼠標和點擊情況。
  • 查看滾動位置。
  • 觀察某人瀏覽過的頁面。
  • 文本聊天。
  • 通過WebRTC語音聊天。
  • 表單域同步(文本域,復選框等等)。
  • 同步播放/暫停/追蹤視頻。
  • 同一網站跨多個頁面延續會話。

如何集成

許多TogetherJS的特性無需更改你的網站。TogetherJS瀏覽DOM,并決定許多應該做什么–檢測表單域,一些諸如CodeMirror和Ace的編輯器,以及在你的頁面注入工具條。

要想嘗試TogetherJS,僅僅要做的是把這個添加到你的頁面里:

  1. <script src="https://togetherjs.com/togetherjs.js"></script> 

然后創建一個按鈕,讓你的用戶開始TogetherJS

  1. <button id="collaborate" type="button">Collaborate</button> 
  2. <script> 
  3. document.getElementById("collaborate") 
  4.   .addEventListener("click", TogetherJS, false); 

如果你想看一些Together做了什么,jsFiddle已經啟用了TogetherJS

gregerhs3

只需要單擊下Collaboration,就會啟動TogetherJS了。你也可以自如地使用TogetherJS,下面我們會講到。

擴展你的應用

TogetherJS可以通過瀏覽DOM來解決一些事情,但不能同步你的JavaScript應用。比如,在你的應用中有一些條目是通過JavaScript來更新的,那么它們就不會相互間自動同步。有時人們期望能自動更新,但即使做了跨頁面間的DOM同步,我們也不可能會做到同步底層的JavaScript對象。不像有些產品,如Firebase或者谷歌Drive實時API,TogetherJS沒有賦予你實時的持久性。網站持久性這樣的功能是由你決定,我們僅僅只是在瀏覽器中同步會話而已。

我們使用了一個簡單的繪畫應用來舉例。我們已經發布了完整的例子作為模板,你可以派生以及親自體驗。

一個非常小的繪畫應用

我們開始一個非常簡單的繪畫程序,我們有一個簡單的畫布:

  1. <canvas id="sketch" 
  2.         style="height: 400px; width: 400px; border: 1px solid #000"> 
  3. </canvas> 

然后是一些設置:

  1. // get the canvas element and its context 
  2. var canvas = document.querySelector('#sketch'); 
  3. var context = canvas.getContext('2d'); 
  4.   
  5. // brush settings 
  6. context.lineWidth = 2
  7. context.lineJoin = 'round'
  8. context.lineCap = 'round'
  9. context.strokeStyle = '#000'

我們使用畫布的mousedownmouseup事件去為mousemove事件注冊move()處理程序。

  1. var lastMouse = { 
  2.   x: 0, 
  3.   y: 0 
  4. }; 
  5.   
  6. // attach the mousedown, mousemove, mouseup event listeners. 
  7. canvas.addEventListener('mousedown', function (e) { 
  8.     lastMouse = { 
  9.         x: e.pageX - this.offsetLeft, 
  10.         y: e.pageY - this.offsetTop 
  11.     }; 
  12.     canvas.addEventListener('mousemove', move, false); 
  13. }, false); 
  14.   
  15. canvas.addEventListener('mouseup', function () { 
  16.     canvas.removeEventListener('mousemove', move, false); 
  17. }, false); 

然后move()函數就會計算出需要繪畫的線條:

  1. function move(e) { 
  2.     var mouse = { 
  3.         x: e.pageX - this.offsetLeft, 
  4.         y: e.pageY - this.offsetTop 
  5.     }; 
  6.     draw(lastMouse, mouse); 
  7.     lastMouse = mouse

***是繪畫線條的函數:

  1. function draw(start, end) { 
  2.     context.beginPath(); 
  3.     context.moveTo(start.x, start.y); 
  4.     context.lineTo(end.x, end.y); 
  5.     context.closePath(); 
  6.     context.stroke(); 

一個簡單的繪畫應用,這些代碼就足夠了?,F在如果你在你的應用中啟用了TogetherJS,你會看到別人頁面在移動,并且能看到他們的鼠標,但你看不到繪畫。讓我們來解決下!

添加TogetherJS

TogetherJS擁有一個交換中心,能在同一會話中相互間回復消息。這并不翻譯消息,只是來回往返,包括消息來自可能在另一頁面。TogetherJS也能讓應用發送自己的消息,如這樣發送消息(每個消息必須有一個類型):

  1. TogetherJS.send({ 
  2.   type: "message-type", 
  3.   ...any other attributes you want to send... 
  4. }) 

然后這樣去監聽:

  1. TogetherJS.hub.on("message-type", function (msg) { 
  2.   if (! msg.sameUrl) { 
  3.     // Usually you'll test for this to discard messages that came 
  4.     // from a user at a different page 
  5.     return; 
  6.   } 
  7. }); 

消息類型是基于命名空間,以致你的應用消息不會意外覆蓋TogetherJS自己的消息。

為了要同步繪畫中我們想觀看的任意一條正在畫的線,并且把這些發送給其它人:

  1. function move(e) { 
  2.     var mouse = { 
  3.         x: e.pageX - this.offsetLeft, 
  4.         y: e.pageY - this.offsetTop 
  5.     }; 
  6.     draw(lastMouse, mouse); 
  7.     if (TogetherJS.running) { 
  8.         TogetherJS.send({type: "draw", start: lastMouse end: mouse}); 
  9.     } 
  10.     lastMouse = mouse

在發送前,我們應該檢查下TogetherJS確實正在運行(TogetherJS.running)。我們發送的消息應該要一目了然的。

下面,我們要去監聽這些消息:

  1. TogetherJS.hub.on("draw", function (msg) { 
  2.     if (! msg.sameUrl) { 
  3.         return; 
  4.     } 
  5.     draw(msg.start, msg.end); 
  6. }); 

當我們注冊這個監聽器時,我們不必擔心TogetherJS是否正在運行,因為只有在它在運行時才能被調用。

這樣足夠讓我們的繪畫更生動并且協作的。但我們還缺少一個:如果我開始畫一個圖像,然后你加入了我,你僅僅會看到我畫的新的線條,你看不到我已經畫過的圖像。

為了要解決這個,我們會去監聽togertherjs.hello消息,它在每個客戶端***訪問一個新的頁面時發送。當我們監聽到這個消息時,我們會發送我們的畫布上的圖像給其他人。

  1. TogetherJS.hub.on("togetherjs.hello", function (msg) { 
  2.     if (! msg.sameUrl) { 
  3.         return; 
  4.     } 
  5.     var image = canvas.toDataURL("image/png"); 
  6.     TogetherJS.send({ 
  7.         type: "init", 
  8.         image: image 
  9.     }); 
  10. }); 

現在我們只要去監聽新的init消息:

  1. TogetherJS.hub.on("init", function (msg) { 
  2.     if (! msg.sameUrl) { 
  3.         return; 
  4.     } 
  5.     var image = new Image(); 
  6.     image.src = msg.image; 
  7.     context.drawImage(image, 0, 0); 
  8. }); 

僅僅使用這些代碼,TogetherJS讓我們制作了一個生動的繪畫應用。當然,我們也要去編寫些代碼,但這里是一些TogetherJS為我們處理的事情:

提供用戶一個URL與另一個用戶分享去啟動會話。

aslfkjsdlkvhjld15

建立一個WebSocket連接到中心服務器,提供客戶端之間的信息往返。

讓用戶設置名稱和頭像,同時觀察其他人也在當前會話中。

safsndgjl16

保持跟蹤,誰在線,誰離開,還有誰空閑中。

簡單但必須的特性,像可用的文本聊天

savfdhrj17

會話初始化以及跟蹤是由TogetherJS處理。

有些事情我們并沒在這個例子中做的:

我們使用了固定大小的畫布,所以我們沒去處理不同客戶端和不同的分辨率。通常TogetherJS會處理不同類型的客戶端,并且使用分辨率無關的定位(甚至對響應設計也有效)。一種修復的方法可能是保證一個固定的長寬比,然后用長寬的百分比去定位繪畫。

我們沒使用任何一個有趣的繪畫工具!可能你不想同步工具—如果我正在使用紅刷筆繪畫,你不能同時使用綠刷筆來繪畫,這樣也沒有理由。

但一些比如清除畫布應該要同步。

我們沒有保存或者加載繪畫。一旦繪畫應用有保存和加載,你可能得更多地思考下想同步什么。如果我已經創建并且保存了一個圖片,然后返回到站點加入你的會話,你的圖像會覆蓋我的嗎?把每個圖像放在唯一的URL能更清晰的表明想去編輯哪個圖像。

想了解更多?

對TogetherJS架構好奇?請查閱技術簡介。

在jsFiddle上嘗試TogetherJS。

通過文檔上的按鈕聯系我們:”提供實時幫助”會請求啟動一個TogetherJS會話

在IRC的#togetherjs上聯系我們。irc.mozilla.org

在Github上查找代碼,如果你遇到bug或者有特性請求,請提一個問題。請別害羞,我們對許多種反饋非常感興趣:想法,潛在用例(以及來自這些用例的挑戰),和那些看起來通過文檔無法回答的問題(這也同時表示我們文檔上的bug)。請告訴我們有關潛在的協同應用。

原文鏈接:https://hacks.mozilla.org/2013/10/introducing-togetherjs/

譯文鏈接:http://blog.jobbole.com/49999/

責任編輯:陳四芳 來源: 伯樂在線
相關推薦

2011-11-30 16:39:33

50種網絡協作工具

2020-02-17 16:19:26

CODING

2020-02-10 12:38:30

遠程辦公

2012-05-23 15:11:56

Windows Pho

2018-05-31 21:16:33

DevOps協作工具開發

2011-11-30 16:20:56

20款免費或廉價的在線

2009-06-19 17:20:27

ibmdwLotus企業級Web2.0

2011-11-30 16:31:00

TimZon

2016-10-25 12:10:14

githubtomcatjavascript

2016-01-13 15:11:32

leangoo工具

2011-11-30 16:53:40

22個優秀的項目管理與

2024-03-20 16:14:48

2012-06-21 13:42:50

Web

2025-03-07 11:41:57

2011-04-19 09:08:09

web工具項目管理

2020-05-25 16:00:24

工具代碼開發

2020-04-07 10:15:42

協作編程工具

2017-05-31 08:57:56

區塊鏈AI聊天機器人

2017-05-11 08:57:23

Web持續集成持續交付

2021-08-30 14:22:48

文檔協作WPS云文檔有道云協作
點贊
收藏

51CTO技術棧公眾號

国产免费av国片精品草莓男男| 久久精品蜜桃| 好看的日韩av电影| 亚洲二区在线播放视频| 欧美牲交a欧美牲交| 搞黄视频免费在线观看| 国产在线精品免费| 国产做受69高潮| 国产精品av久久久久久无| 久久国产精品美女| 色av成人天堂桃色av| 国产高潮呻吟久久久| 丝袜视频国产在线播放| 男人的天堂亚洲一区| 欧美黑人狂野猛交老妇| 青娱乐国产视频| 大桥未久女教师av一区二区| 欧美日韩一区二区三区不卡| 欧美又粗又长又爽做受| av电影在线网| 99免费精品视频| 国产一区二区在线播放| 日日夜夜综合网| 伊人成综合网| 国产一区二区三区直播精品电影| 蜜桃视频无码区在线观看| 亚洲综合在线电影| 亚洲国产另类av| 手机看片日韩国产| 春暖花开成人亚洲区| 成人精品在线视频观看| 91香蕉电影院| 中文字字幕在线观看| 怡红院精品视频在线观看极品| 色偷偷9999www| 久久美女免费视频| 日韩精品导航| 欧美精品一区在线观看| 99热这里只有精品2| 日日夜夜综合| 欧美日韩在线亚洲一区蜜芽| 精品视频一区二区在线| 国产99在线| 亚洲成人午夜电影| 毛片av在线播放| 影音先锋在线播放| 亚洲人成影院在线观看| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 免费一级毛片在线观看| www.一区二区| 黄色小网站91| 午夜福利视频一区二区| 成人午夜激情片| 国产日韩三区| 天天操天天射天天| 99这里只有精品| 精品伊人久久大线蕉色首页| 欧美 日韩 中文字幕| 成人avav在线| 久久精品国产一区二区三区日韩| 日韩欧美电影在线观看| xfplay精品久久| 欧美一区2区三区4区公司二百 | 欧美巨大另类极品videosbest| 毛葺葺老太做受视频| 成人日韩在线| 欧美精品第一页| 人妻巨大乳一二三区| 日韩成人久久| 亚洲精品一区二区三区影院| 免费无码一区二区三区| 精品一区毛片| 中文字幕欧美精品在线 | 久久不见久久见国语| 亚洲最新av在线网站| 北条麻妃在线观看视频| 午夜视频一区| 2018日韩中文字幕| 日韩一级片中文字幕| 精品亚洲成a人| av一区二区三区在线观看| 无码精品在线观看| 国产喂奶挤奶一区二区三区| 三年中文高清在线观看第6集| 性爱视频在线播放| 精品久久在线播放| 爱情岛论坛亚洲首页入口章节| www 久久久| 日韩不卡在线观看| 任你操精品视频| 欧美日韩蜜桃| 国产激情视频一区二区在线观看| 大伊人狠狠躁夜夜躁av一区| 久久国产精品网| 二区三区不卡| 欧美一区午夜精品| 先锋资源av在线| 成人一区而且| 午夜精品久久久久久久99热浪潮| 精品人妻无码一区二区性色| 国产一区欧美一区| 欧美日韩国产精品一卡| 老司机午夜在线视频| 午夜私人影院久久久久| 91小视频网站| 任你躁在线精品免费| 久久精品视频在线观看| 国产成人精品一区二三区| 久久99国产精品尤物| 久久av一区二区| 国产黄色小视频在线| 色综合久久中文字幕综合网| 精品伦一区二区三区| 日本道不卡免费一区| 97视频人免费观看| 国产美女裸体无遮挡免费视频| 久久夜色精品一区| 亚洲av综合色区| www.一区| 亚洲男人天堂久| 麻豆一区二区三区精品视频| 美国欧美日韩国产在线播放| 欧美高清视频一区| 成人免费一区二区三区牛牛| 在线观看91av| 亚洲一级理论片| 天堂va蜜桃一区二区三区| 超碰97国产在线| 黄网页免费在线观看| 在线观看精品一区| 亚洲av成人片色在线观看高潮| 女人色偷偷aa久久天堂| 国产欧美一区二区三区久久| 九色视频成人自拍| 日韩欧美在线观看| 91精品啪在线观看国产| 欧美日韩一区二区国产| 91久久嫩草影院一区二区| 在线免费观看黄色av| 欧美三级欧美一级| 国产一级久久久久毛片精品| 久久久久久夜| 免费国产在线精品一区二区三区| h片在线观看视频免费免费| 欧美一区二区视频在线观看2020 | 色欲av无码一区二区人妻| 国产乱论精品| 久久久免费观看| 开心激情综合网| 亚洲午夜久久久久中文字幕久| 久久久久久久久久一区| 91精品国产91久久久久久密臀| 成人黄色片网站| 国产视频一区二区| 91麻豆精品国产91久久久| 午夜剧场免费在线观看| 国产在线一区二区| 无码人妻精品一区二区蜜桃百度| 国产在线一区不卡| 欧美精品手机在线| 成人久久精品人妻一区二区三区| 亚洲国产精品嫩草影院| 蜜臀av粉嫩av懂色av| 国产欧美在线| 欧美日韩亚洲免费| 日韩制服一区| 久久精品夜夜夜夜夜久久| av免费在线不卡| 亚洲一区二区三区自拍| 噜噜噜在线视频| 日韩国产精品91| 中文字幕一区二区三区精彩视频| 国产精品一区免费在线| 久久久久久久久久国产| 桃花色综合影院| 精品视频在线免费| 成人免费精品动漫网站| 99精品在线观看视频| 香蕉视频网站入口| 一区二区三区在线| 精品日产一区2区三区黄免费| 欧美gay囗交囗交| 日韩一二三在线视频播| 蜜桃视频久久一区免费观看入口| 欧美视频一二三| 国产日产精品一区二区三区的介绍| 国产成人免费视| 久久精品视频91| 久久久久蜜桃| 精品网站在线看| 美女视频一区| 性色av一区二区三区| av资源网在线观看| 欧美α欧美αv大片| 色老头在线视频| 一区二区三区四区精品在线视频 | 国产成人久久777777| 99精品在线观看| 精品视频第一区| 精品国产鲁一鲁****| 欧美中文字幕在线视频| av香蕉成人| 一区二区三区视频免费在线观看| 国产黄色一区二区| 在线观看中文字幕不卡| 青青草原在线免费观看| 国产情人综合久久777777| 无码国产精品一区二区高潮| 青娱乐精品视频在线| 一二三四视频社区在线| 午夜影院欧美| 日本一区二区在线视频观看| 草草视频在线一区二区| 91九色国产在线| 天天综合网站| 91福利视频在线观看| 怡红院av在线| 色综合伊人色综合网站| 青梅竹马是消防员在线| 精品剧情在线观看| 国产乱淫a∨片免费视频| 日本道精品一区二区三区| 日本一区二区三区免费视频| 亚洲精品va在线观看| 久久久久久久久久97| 国产亚洲一区二区三区| 久久一区二区电影| 国产成人精品一区二| 极品粉嫩美女露脸啪啪| 日本va欧美va瓶| 日本888xxxx| 老牛嫩草一区二区三区日本| 国产精品va无码一区二区| 一区二区自拍| 日韩不卡视频一区二区| 国产精品伦理久久久久久| 亚洲一二区在线| 日韩在线观看一区| 午夜精品亚洲一区二区三区嫩草 | 欧美日韩一级在线| 日韩精品中文字幕第1页| 日韩资源av在线| 国产成人精品免费视| 蜜桃91精品入口| 你懂的一区二区三区| 欧美一区二区三区成人久久片| 美女久久99| 日韩国产一区久久| 国产日产精品一区二区三区四区的观看方式 | a美女胸又www黄视频久久| 国产人妖在线观看| 国产成人精品午夜视频免费| 欧美xxxx日本和非洲| 懂色av中文字幕一区二区三区| 亚洲精品鲁一鲁一区二区三区| 国产成人免费视频网站高清观看视频 | 免费毛片b在线观看| 国产91精品久久久久| 在线一区av| 国产成人亚洲综合| 精品网站在线| 成人午夜两性视频| 午夜日韩影院| 精品免费二区三区三区高中清不卡| 青青草久久爱| 视频一区国产精品| 66久久国产| 日韩欧美精品免费| 国产一区成人| 91极品视频在线观看| 黄色精品一二区| 日本不卡视频一区| 久久久久久久电影| 手机在线中文字幕| 亚洲一线二线三线视频| 综合激情网五月| 欧美三级中文字| 性生活三级视频| 亚洲精品小视频在线观看| av电影在线观看网址| 精品自在线视频| 亚洲国产成人二区| 国产精品久久久久久久久久| 久久久精品区| 欧美第一黄网| 一区二区三区午夜视频| 亚洲国产精品久久久久婷蜜芽| 日本在线观看不卡视频| 亚洲免费成人在线视频| 99精品视频在线观看免费| 免费91在线观看| 午夜精品一区二区三区电影天堂| 久久国产香蕉视频| 精品国产百合女同互慰| 高清性色生活片在线观看| 欧美精品在线极品| 玛雅亚洲电影| 99伊人久久| 日韩成人a**站| 亚洲不卡中文字幕无码| 久久99精品国产麻豆婷婷 | 国产蜜臀97一区二区三区| 黄色一级片在线| 欧美色老头old∨ideo| 好吊视频一区二区三区| 社区色欧美激情 | 夜鲁夜鲁夜鲁视频在线播放| 亚洲综合精品一区二区| 欧美久久综合网| 亚洲 自拍 另类小说综合图区| 久久精品理论片| 公侵犯人妻一区二区三区| 夜夜嗨av一区二区三区网页| 亚洲无码精品国产| 国产视频精品久久久| 日韩专区av| 91精品久久久久| 免费一区二区三区视频导航| 日本黄大片在线观看| 久久精品国产一区二区| 熟女俱乐部一区二区| 一区二区三区在线免费| 一本到在线视频| 国产一区二区三区久久精品| 伊人网在线播放| 国产一级特黄a大片99| 欧美日本中文| 九一精品久久久| 中文天堂在线一区| 亚洲欧美日韩一区二区三区四区| 亚洲国产成人av在线| 高h视频在线播放| 99中文视频在线| 亚洲成人av| 97免费公开视频| 国产色91在线| 在线免费一区二区| 亚洲日本欧美日韩高观看| 欧美大片免费高清观看| 美国av一区二区三区| 99精品久久| 日本黄色免费观看| 午夜精品免费在线| 神马一区二区三区| 久久免费视频这里只有精品| 风间由美性色一区二区三区四区 | 日韩一区二区电影| 麻豆网站视频在线观看| 成人xxxxx| 亚洲精品国产偷自在线观看| 一级做a爱视频| 一区二区欧美国产| 亚洲大尺度视频| 国语自产精品视频在线看| 欧美美女啪啪| 精品一卡二卡三卡| 国产女人18毛片水真多成人如厕| 波多野结衣家庭主妇| 中文字幕在线看视频国产欧美| 国产亚洲人成a在线v网站 | 国产高清在线一区| 极品少妇一区二区三区| 亚洲一区二区三区综合| 91久久线看在观草草青青| 最新av网站在线观看| 96pao国产成视频永久免费| 在线观看亚洲| 精品欧美一区二区久久久| 欧美人动与zoxxxx乱| 亚洲综合伊人久久大杳蕉| 国新精品乱码一区二区三区18| 国产精品视频| 免费观看特级毛片| 欧美www视频| 欧美二三四区| 四虎影院一区二区| 不卡电影免费在线播放一区| 免费污污视频在线观看| 日韩中文字幕国产精品| 永久免费精品视频| 日本久久久精品视频| 国产精品久久毛片av大全日韩| 国产99久久九九精品无码免费| 97国产在线视频| 日韩在线中文| 国产a级黄色片| 欧美三级电影网| 久久香蕉一区| 亚洲欧美成人一区| www.色综合.com| 在线观看一二三区| 国内自拍欧美激情| 成人精品视频| 日本成人在线免费| 欧美视频三区在线播放| 欧美aaa免费| 亚洲一区二区三区涩| 成人久久久精品乱码一区二区三区| 中文字幕一级片| 91黑丝在线观看|