我有一个带有有效SSL证书的Apache网络服务器。它在上面运行我的Web应用程序。我们称它为服务器A。
然后,我有第二台服务器运行带有有效SSL证书的Node-Js服务器。还有socket.IO运行。我们将其称为服务器B。
客户端请求服务器A上的Web应用程序并显示所需的页面。如果在客户端上设置了页面,则将通过websocket与服务器B建立连接。如果另一个客户端应该更改页面上的某些内容,则它将适用于所有当前连接的客户端。
Websockets根据需要工作。只要通过计算机浏览器访问该页面即可。
如果我现在使用智能手机(Iphone 7)通过Safari或Chrome(WLAN)进入网站,则无法建立与Websocket服务器(服务器B)的连接。
然后,我在http上设置了一个不加密的小型websocket示例。 在那里,网络套接字可以在智能手机浏览器上工作。
我希望我可以理解地描述我的问题。我非常感谢提示,示例或类似内容。
// This script run on my Server
const fs = require('fs');
const server = require('https').createServer({
key: fs.readFileSync('myserver.key', 'utf8'),
cert: fs.readFileSync('myserver.cer', 'utf8'),
passphrase: ''
});
let io = require('socket.io')(server);
server.listen(3003);
io.on('connection', function (socket) {
console.log("User Connected connect " + socket.id);
socket.on('disconnect', function () {
console.log("User has close the browser " + socket.id);
});
socket.on('feedback', function (data) {
io.sockets.emit('feedback', data);
});
});
// On Clientsite
socket = io.connect('wss://adressOfServer:3003', {
// secure: true,
transports: ['websocket'],
upgrade: false,
rejectUnauthorized: false
//Here I have already tried many combinations
});
socket.on('connect_error', function (error) {
// alert(error);
});