我是套接字的新手,我想连接两个进程(仅在localhost上)。我有我的python程序,它做了一些事情,需要将它的结果永久地发送到用javascript编写的用户界面。我考虑过Socket.IO,但据我所知,Socket.IO位于http和python套接字之上是TCP连接。甚至可以通过套接字连接javascript和python吗?
答案 0 :(得分:0)
您可以使用Node.js核心API附带的Net
Module来创建TCP套接字服务器或作为客户端连接到现有的TCP服务器。
如果您正在寻找创建新的TCP服务器,可以使用net.createServer()
或自己创建new Server
。
const {Server} = require('net')
const server = new Server(socket=> {
console.log('client connected')
// Attach listeners for the socket
socket.on('data', message => {
console.log('message')
// Write back to the client
socket.write('world')
})
// Send the client a message to disconnect from the server after a minute
setTimeout(() => socket.write('disconnect'), 60000)
socket.on('end', () => console.log('client disconnected'))
})
server.listen('localhost', () => console.log('listening'))
如果您正在寻找创建与现有服务器的客户端TCP连接,您可以使用net.createConnection()
或创建new Socket
并使用socket.connect()
连接到TCP服务器。< / p>
const {Socket} = require('net')
const client= new Socket()
client.connect('localhost', () => {
console.log('connected to localhost')
client.on('data', message => {
if (message === 'disconnect') {
console.log('disconnecting from localhost')
client.end()
} else {
console.log(`Message from the Server: ${message}`)
}
})
client.write('hello!')
})
答案 1 :(得分:0)
我知道一个项目使用ZeroMQ messaging protocol来完成你感兴趣的事情。你应该考虑看一下。
答案 2 :(得分:-1)
你可以考虑一个WebSocket,虽然它可能是一个单独本地的重要选择。文档:https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
此外,您似乎正在使用socket.io,也许您应该尝试使用此库:https://github.com/evanw/socket.io-python这似乎与您的项目有关。