【发布时间】:2019-02-22 16:47:28
【问题描述】:
我已经设置了他们为 peerjs 提供的示例,在我的 chrome 电脑上运行良好,但我有 ipad pro 和 safari v12,只给我本地流,但不将答案发送给发送者对等
这是我的发件人客户端
const peer = new Peer('sender', { host: '100.0.0.98', port: 9000, path: '/',debug: 3 })
var call = document.getElementById('call');
call.addEventListener('click', startChat);
function startChat (){
navigator.mediaDevices.getUserMedia({
video: true
}).then(function(localStream) {
document.getElementById('local').srcObject = localStream;
const call = peer.call('receiver', localStream);
call.on('stream', function(remoteStream) {
document.getElementById('remote').srcObject = remoteStream;
});
});
}
这是我的接收器
const peer = new Peer('receiver', { host: '100.0.0.98', port: 9000, path: '/', debug: 3 })
// var debugElement = domcument.getElementById('debug');
peer.on('call', function (call) {
var conf = confirm('Some one is calling you...')
if (conf) {
navigator.mediaDevices.getUserMedia({
video: true
}).then(function (localStream) {
document.getElementById('local').srcObject = localStream;
call.answer(localStream);
call.on('stream', function (remoteStream) {
document.getElementById('remote').srcObject = remoteStream;
});
}).catch(function (error) { console.log(error); });
}
});
peer.on('error', function (err) {
var node = document.createElement("LI"); // Create a <li> node
var textnode = document.createTextNode(err); // Create a text node
node.appendChild(textnode); // Append the text to <li>
document.getElementById("debug").appendChild(node); // Append <li> to <ul> with id="myList"
});
这是我的服务器
var express = require('express');
var app = express();
var ExpressPeerServer = require('peer').ExpressPeerServer;
var ip = require('ip');
var fs = require('fs');
app.use(express.static(__dirname + '/public'));
var options = {
debug: true
}
var sslOptions = {
key: fs.readFileSync('ssl/key.pem', 'utf8'),
cert: fs.readFileSync('ssl/cert.pem', 'utf8')
};
var server = require('https').createServer(sslOptions,app);
var peerserver = ExpressPeerServer(server, options);
app.use('/scripts', express.static(`${__dirname}/node_modules/`));
app.use(express.static('public'));
app.get('/sender', function (req, res, next) {
// res.render('sender.html');
// res.header("Access-Control-Allow-Origin", "*");
// res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.sendFile(__dirname + '/public/sender.html');
});
app.get('/recived', function (req, res, next) {
// res.render('sender.html');
// res.header("Access-Control-Allow-Origin", "*");
// res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.sendFile(__dirname + '/public/recived.html');
});
app.use('/', peerserver);
server.listen(9000,ip.address(),()=>{
console.log(`server peer on ${ip.address()}:9000`);
});
我正在使用 peerjs v0.3.20 有人可以帮助我吗,非常感谢
【问题讨论】:
-
好吧,我尝试调试它,当用 Safari 浏览器打开它时,我在接收器客户端看到它说无法与服务器连接,我不知道这是怎么回事。
标签: javascript safari webrtc peerjs