【问题标题】:Implement a socket connection in my apollo graphQL express server在我的 apollo graphQL express 服务器中实现一个套接字连接
【发布时间】:2019-07-22 19:52:51
【问题描述】:

我正在使用 apollo-server-express 运行基于 express 的 apollo graphQL 服务器。

import express from 'express'
import cors from 'cors'
import server from './graphql/schema'

app.use(cors())
server.applyMiddleware({ app, path: '/graphql' })

app.listen(port, async () => {
  if (process.env.NODE_ENV !== 'production') {
    console.log('Listening on port ' + port)
  }
})

export default app

现在我需要从我的客户端连接到其他一些应用程序。因此,他为我提供了 HL7 数据。他告诉我'使用套接字来获取 HL7 数据',我的应用程序可以使用它。 我根本不知道如何实现套接字连接。

做一些研究把我带到了像 socket.io 这样的库,应该像这样使用(对于 express):

const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', () => { /* … */ });
server.listen(3000)

我不明白如何在上面显示的现有代码中实现io

我从来没有使用或实现过套接字连接,所以我对此有很大的理解问题。也许 socket.io 库不适合我的需求。

【问题讨论】:

    标签: javascript express socket.io graphql apollo-server


    【解决方案1】:

    我对@9​​87654321@一无所知,我认为您的另一个应用程序是用Java编写的。

    但是,如果你想实现一个带有apollo-server-express的socket.io服务器,只需按照socket.io官方文档并在express appsocket.io上附加一个http server,然后启动你的http服务器。

    import express from 'express'
    import cors from 'cors'
    import GraphQLServer from './graphql/schema'
    import socketIO from 'socket.io'
    import http from 'http'
    
    let app = express() // You missed this line ?
    
    let httpServer = http.Server()
    
    let io = socketIO(httpServer)
    
    app.use(cors())
    GraphQLServer.applyMiddleware({ app, path: '/graphql' })
    
    httpServer.listen(port, async () => { // I don't see your `port`
      if (process.env.NODE_ENV !== 'production') {
        console.log('Listening on port ' + port)
      }
    })
    
    io.on('connection', (socket) => {
      console.log('A client connected', socket.id)
    });
    
    export default app
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-24
      • 2021-03-21
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2023-03-22
      相关资源
      最近更新 更多