如何将此本地服务器API转移到Web API,以在heroku中部署我的应用程序?

时间:2019-01-29 07:48:07

标签: javascript reactjs socket.io

我具有用于聊天应用程序的这些代码,并且只能在本地服务器上工作

我已经尝试了以下方法。无需任何路径参数即可调用io()。

 // Client Side Code
     socket = io();
    socket.connect({ query: `username=${props.username}` })

上面没有用。该应用程序正在运行,但不显示其他用户的消息。

 // Client Side Code
    socket = io('http://myherokuapp:3001', { query: 
     `username=${props.username}` }).connect();

以上代码均无效。该应用程序在此崩溃。

这是我的实际源代码:

  // Server Side Code
 const express = require("express");
 const path = require("path");
 const PORT = process.env.PORT || 3001;
 const app = express();
 const http = require("http");
const cors = require("cors");
 const io = require("socket.io");

 const server = http.createServer(app);
 const socketIo = io(server);

 app.use(cors());

 app.get('/messages', (req, res) => {
  res.sendFile(path.resolve('./public/index.html'));
 });

 socketIo.on('connection', socket => {
   const username = socket.handshake.query.username;
   console.log(`${username} connected`);

   socket.on('client:message', data => {
     console.log(`${data.username}: ${data.message}`);
     socket.broadcast.emit('server:message', data);
   });

   socket.on('disconnect', () => {
     console.log(`${username} disconnected`);
   });
 });

 server.listen(PORT, () => {
   console.log(` ==> API server now on port ${PORT}!`);
 });



 // Client Side Code
     socket = io('http://localhost:3001', { query: 
 `username=${props.username}` }).connect();

     socket.on('server:message', message => {
       addMessage(message);
     });

     socket.emit('client:message', messageObject);

     addMessage(messageObject);

我希望聊天应用程序能够与localhost中的应用程序相同。

0 个答案:

没有答案