Javascript 在我的apollo graphQL express服务器中实现套接字连接

Javascript 在我的apollo graphQL express服务器中实现套接字连接,javascript,express,socket.io,graphql,apollo-server,Javascript,Express,Socket.io,Graphql,Apollo Server,我正在使用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 () =>

我正在使用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):

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


我从来没有使用或实现过套接字连接,所以我在理解上有很大的问题。可能socket.io库不适合我的需要。

我对
HL7数据没有任何了解,我想你的另一个应用程序是用Java编写的

但是,如果您想用apollo server express实现socket.io服务器,只需遵循
socket.io
官方文档,将
http服务器
附加到
express app
socket.io
,然后启动您的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
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