Код: Выделить всё
const express = require('express');
const {createServer} = require('node:http')
const {Server}= require('socket.io');
const {join} = require('node:path');
var PORT = process.env.PORT || 3000;
function main (){
const app = express();
const server = createServer(app);
const io = new Server(server);
app.get('/', (req, res)=>{
res.sendFile(join(__dirname, 'index.html'));
});
io.on('connection', (socket)=>{
console.log(socket.id);
});
server.listen(PORT, ()=>{
console.log('server running at port '+PORT);
});
}
main();
Код: Выделить всё
class Client{
private lateinit var socket: Socket
@Synchronized
fun setSocket(){
try {
val option = IO.Options();
option.transports = arrayOf("websocket");
socket = IO.socket("http://127.0.0.1:3000", option)
}catch (e: URISyntaxException){
println("error when creating socket")
}
}
@Synchronized
fun getSocket(): Socket {
return socket
}
@Synchronized
fun establishConnection(){
try{
socket.connect()
}catch (e:Exception){}
}
@Synchronized
fun closeConnection(){
try {
socket.disconnect()
}catch (e:Exception){
}
}
}
fun main() {
val client = Client()
client.setSocket()
client.establishConnection()
}
Код: Выделить всё
GRAVE: Task threw exception java.lang.RuntimeException: Stub! at org.json.JSONObject.(JSONObject.java:115) at io.socket.engineio.client.HandshakeData.(HandshakeData.java:16) at io.socket.engineio.client.Socket.onPacket(Socket.java:541) at io.socket.engineio.client.Socket.access$1000(Socket.java:36) at io.socket.engineio.client.Socket$5.call(Socket.java:337) at io.socket.emitter.Emitter.emit(Emitter.java:117) at io.socket.engineio.client.Transport.onPacket(Transport.java:124) at io.socket.engineio.client.Transport.onData(Transport.java:116) at io.socket.engineio.client.transports.WebSocket.access$100(WebSocket.java:23) at io.socket.engineio.client.transports.WebSocket$1$2.run(WebSocket.java:73) at io.socket.thread.EventThread$2.run(EventThread.java:80) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)
Exception in thread "EventThread" java.lang.RuntimeException: Stub! at org.json.JSONObject.(JSONObject.java:115) at io.socket.engineio.client.HandshakeData.(HandshakeData.java:16) at io.socket.engineio.client.Socket.onPacket(Socket.java:541) at io.socket.engineio.client.Socket.access$1000(Socket.java:36) at io.socket.engineio.client.Socket$5.call(Socket.java:337) at io.socket.emitter.Emitter.emit(Emitter.java:117) at io.socket.engineio.client.Transport.onPacket(Transport.java:124) at io.socket.engineio.client.Transport.onData(Transport.java:116) at io.socket.engineio.client.transports.WebSocket.access$100(WebSocket.java:23) at io.socket.engineio.client.transports.WebSocket$1$2.run(WebSocket.java:73) at io.socket.thread.EventThread$2.run(EventThread.java:80) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)
Подключился к серверу из веб-клиента через html файл и всё все в порядке, проблема возникает при попытке подключения к серверу из клиента Kotlin. Я использую IP-адрес для локального хоста («127.0.0.1:3000») при создании объекта сокета, а затем устанавливаю соединение, но, похоже, оно не работает
Подробнее здесь: https://stackoverflow.com/questions/791 ... -io-server