Javascript 在我的apollo graphQL express服务器中实现套接字连接
我正在使用apollo server express运行一个基于express的apollo graphQL服务器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 () =>
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