Я пытаюсь получить клиент Socket.IO для подключения к серверу Python Websocket, который я создал с помощью aaugustin's websockets library и asyncio. Используя пример на странице я создал следующий веб-сокет сервера:Как сделать клиент Socket.IO подключиться к серверу Python3 Websocket
import asyncio
import websockets
from datetime import datetime
@asyncio.coroutine
def producer():
return str(datetime.now())
@asyncio.coroutine
def handler(websocket, path):
while True:
message = yield from producer()
if not websocket.open:
break
yield from websocket.send(message)
yield from asyncio.sleep(3)
start_server = websockets.serve(handler, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Вид подается с использованием Настой и выглядит следующим образом:
<!doctype html>
<head>
<title>Websocket Client Test</title>
</head>
<body>
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script>
console.log(io);
var socket = io("ws://localhost:8765/");
console.log(socket);
</script>
</body>
Всякий раз, когда Socket.IO пытается подключиться, его выдает следующее сообщение об ошибке:
XMLHttpRequest cannot load http://localhost:8765/socket.io/?EIO=3&transport=polling&t=1434254272412-0. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5001' is therefore not allowed access. The response had HTTP status code 400.
Доступ-Control-Allow-Origin, кажется, подразумевает, что я пытаюсь сделать запрос на месте с другим именем хоста, который я не делаю. Поэтому я не знаю, почему он выбрасывал эту ошибку. Я создал скрипт клиента Python, который прекрасно подключается к серверу, поэтому я немного потерял то, чего не хватает.