Я устал от запуска Node.js WebSocket на хостинге Godaddy, поэтому клиентская сторона не может соединиться с сервером на веб-хостинге, но на localhost это работает! Я также отредактировал .htacces
, но это не работает!
Когда я пытаюсь написать код сервера на Python, он прекрасно работает со мной, но Node.js не работает. Я должен использовать Node.js, потому что он очень хорошо поддерживает мой проект.
Я добавлю код сервера и код клиента ниже:
Сервер
const express = require('express');
const http = require('http');
const WebSocket = require('ws');
const app = express();
//initialize a simple http server
const server = http.createServer(app);
//initialize the WebSocket server instance
const wss = new WebSocket.Server({ server });
wss.on('connection', (ws) => {
//connection is up, let's add a simple simple event
ws.on('message', (message) => {
//log the received message and send it back to the client
console.log('received: %s', message);
ws.send('Hello, you sent -> ${message}');
});
//send immediatly a feedback to the incoming connection
ws.send('Hi there, I am a WebSocket server');
});
//start our server
server.listen(process.env.PORT || 8999, () => {
console.log('Server started on port ${server.address().port} :)');
});
Клиент
import WebSocket
try:
import thread
except for ImportError:
import _thread as the thread
import time
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
def run(*args):
while True :
input_func = None
try:
input_func = raw_input
except NameError:
input_func = input
username = input_func("Username:")
ws.send(username)
time.sleep(1)
ws.close()
print("thread terminating...")
thread.start_new_thread(run, ())
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://localhost:8181/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()