94 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="zh">
 | 
						|
 | 
						|
<head>
 | 
						|
    <meta charset="UTF-8">
 | 
						|
    <title>webRTC</title>
 | 
						|
</head>
 | 
						|
 | 
						|
<body>
 | 
						|
    <div>
 | 
						|
        <h1>Entanglement</h1>
 | 
						|
        <p>同步</p>
 | 
						|
    </div>
 | 
						|
    <script type="module">
 | 
						|
        import { List, ListItem, useProxy } from './weigets.js'
 | 
						|
        //import Entanglement from './entanglement.js'
 | 
						|
        //const entanglement = new Entanglement({
 | 
						|
        //    options: {
 | 
						|
        //        iceServers: [
 | 
						|
        //            {
 | 
						|
        //                urls: 'turn:satori.love:3478?transport=udp',
 | 
						|
        //                username: 'x-username',
 | 
						|
        //                credential: 'x-password'
 | 
						|
        //            },
 | 
						|
        //            {
 | 
						|
        //                urls: [
 | 
						|
        //                    'stun:stun.1und1.de',
 | 
						|
        //                    'stun:stun.callwithus.com',
 | 
						|
        //                    'stun:stun.ekiga.net',
 | 
						|
        //                    'stun:stun.fwdnet.net',
 | 
						|
        //                    'stun:stun.fwdnet.net:3478',
 | 
						|
        //                    'stun:stun.gmx.net',
 | 
						|
        //                    'stun:stun.iptel.org',
 | 
						|
        //                    'stun:stun.internetcalls.com',
 | 
						|
        //                    'stun:stun.minisipserver.com',
 | 
						|
        //                    'stun:stun.schlund.de',
 | 
						|
        //                    'stun:stun.sipgate.net',
 | 
						|
        //                    'stun:stun.sipgate.net:10000',
 | 
						|
        //                    'stun:stun.softjoys.com',
 | 
						|
        //                    'stun:stun.softjoys.com:3478',
 | 
						|
        //                    'stun:stun.voip.aebc.com',
 | 
						|
        //                    'stun:stun.voipbuster.com',
 | 
						|
        //                    'stun:stun.voipstunt.com',
 | 
						|
        //                    'stun:stun.voxgratia.org',
 | 
						|
        //                    'stun:stun.wirlab.net',
 | 
						|
        //                    'stun:stun.xten.com',
 | 
						|
        //                    'stun:stunserver.org',
 | 
						|
        //                    'stun:stun01.sipphone.com',
 | 
						|
        //                    'stun:stun.zoiper.com'
 | 
						|
        //                ]
 | 
						|
        //            }
 | 
						|
        //        ],
 | 
						|
        //        iceCandidatePoolSize: 10,  // 限制 ICE 候选者的数量
 | 
						|
        //        iceTransportPolicy: 'all', // 使用所有可用的候选者
 | 
						|
        //        bundlePolicy: 'balanced',  // 每種類型的內容建立一個單獨的傳輸
 | 
						|
        //    }, server: {}
 | 
						|
        //})
 | 
						|
        //entanglement.set('json', {
 | 
						|
        //    users: { name: 'users', list: [{ name: 'satori' }] },
 | 
						|
        //    music: { name: 'music', list: [{ name: 'satori' }] },
 | 
						|
        //    image: { name: 'image', list: [{ name: 'satori' }] }
 | 
						|
        //})
 | 
						|
        //await new Promise(resolve => setTimeout(resolve, 3000))
 | 
						|
        const store = useProxy({
 | 
						|
            users: { name: 'users', list: [{ name: 'satori' },{ name: 'sato' }] },
 | 
						|
            music: { name: 'music', list: [{ name: 'satori' },{ name: 'sato' }] },
 | 
						|
            image: { name: 'image', list: [{ name: 'satori' },{ name: 'sato' }] },
 | 
						|
        }, data => {
 | 
						|
            //console.log('触发了:', data.key, data.value)
 | 
						|
            console.log('当前数据:', store)
 | 
						|
        })
 | 
						|
        //console.log('当前数据:', JSON.stringify(store))
 | 
						|
        delete store.users.list[1]
 | 
						|
        //console.log('当前数据:', JSON.stringify(store))
 | 
						|
        store.users.list.push({ name: 'koishi' })
 | 
						|
        //store.users.list.push({ name: 'koishi' })
 | 
						|
        //store.users.list.push({ name: 'koishi' })
 | 
						|
        //console.log('当前数据:', JSON.stringify(store))
 | 
						|
        //document.body.appendChild(List({
 | 
						|
        //    children: store.users.list.map(user => ListItem({ textContent: user.name })),
 | 
						|
        //    onclick: () => {
 | 
						|
        //        if (event.target.tagName === 'LI') {
 | 
						|
        //            console.log('点击了:', event.target.textContent)
 | 
						|
        //        }
 | 
						|
        //        //store.users.name = 'koishi'
 | 
						|
        //        store.users.list.push({ name: 'koishi' })
 | 
						|
        //        //store.users.list.pop()
 | 
						|
        //        // 在数据从其他位置被删除时也能删除这里的元素
 | 
						|
        //    }
 | 
						|
        //}))
 | 
						|
    </script>
 | 
						|
</body>
 | 
						|
 | 
						|
</html> |