智能手机浏览器上基于SSL的socketIO

时间:2019-02-21 14:27:09

标签: ssl browser websocket socket.io smartphone

我有一个带有有效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);
});

0 个答案:

没有答案