簡體   English   中英

我的節點服務器在網站的桌面視圖上工作,但不在移動設備上。 節點AWS EC2 Express

[英]My node server working on desktop view of website but not mobile. Node AWS EC2 Express

在下面發布代碼。 但是有一點背景。 我的節點服務器通過AWS托管在EC2服務器上。 我的網站是使用Angular Framework完成的。

let express = require('express');
let app = express();

let http = require('http');
let server = http.Server(app);
let usercount = 0;
let socketIO = require('socket.io');
let io = socketIO(server);

const port = process.env.PORT || 3000;

io.on('connection', (socket) => {
  usercount++;
  console.log(usercount.toString());

  socket.on('join-main-chat', (message) => {
    socket.join('main room');
    io.to('main room').emit('new-message', usercount.toString());
  });

  socket.on('change-room', (message) => {
    newRoom = message.substring(message.indexOf('-') + 1, message.length);
    let user = message.substring(0, message.indexOf('-') - 1);
    socket.leaveAll();
    socket.join(newRoom);
    console.log(user + " joined the " + message + " room");
    io.to(newRoom).emit('new-message', user + " joined the " + newRoom);
  });

  socket.on('new-message', (message) => {
    console.log(message);
    let newMessage = message.substring((message.indexOf(":") + 2), message.length);
    let currentRoom = message.substring(0, message.indexOf(":"));
    io.to(currentRoom).emit('new-message', newMessage);
    io.emit('get-count', usercount.toString());
  });

  socket.on('left-message', (message) => {
    usercount--;
    console.log(usercount.toString());
    io.emit('new-message', message);
    io.emit('new-message', usercount.toString());
    io.emit('get-count', usercount.toString());
  });
});


server.listen(port, () => {
  console.log(`started on port: ${port}`);
});

從台式機或筆記本電腦訪問我的網站時,此方法沒有任何問題。 這在其他許多計算機上也可以使用。 但是,當我嘗試從手機訪問它時,似乎手機從未連接到節點服務器。

我真的不確定為什么會這樣嗎?

您提到您正在使用Google Chrome移動瀏覽器。 Chrome WebSocket支持才剛剛起步 ,采用率看起來很低-您可能使用的是舊版本。 您需要更新您的移動瀏覽器才能獲得該功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM