non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

node.jsのwsモジュールによるWebSocketとPythonやJuliaのWebSocketの違い

おはようございます。@kjunichiです。 この記事は、@kjunichiの2018年パーソナルアドベントカレンダーの3日目の記事です。

イクラBE版とのWebSocket接続

イクラBE版(Minecraft Win10)から/connectコマンドでnode.jsのwsではつながるのに、昨日紹介したJuliaやPythonのWebSocketのライブラリで 作ったサーバーへ接続しても何故かつながらない模様。

つながらないPython

from websocket_server import WebsocketServer

# Called for every client connecting (after handshake)
def new_client(client, server):
    print("New client connected and was given id %d" % client['id'])
    server.send_message_to_all("Hey all, a new client has joined us")


# Called for every client disconnecting
def client_left(client, server):
    print("Client(%d) disconnected" % client['id'])


# Called when a client sends a message
def message_received(client, server, message):
    if len(message) > 200:
        message = message[:200]+'..'
    print("Client(%d) said: %s" % (client['id'], message))


PORT=9001
server = WebsocketServer(PORT)
server.set_fn_new_client(new_client)
server.set_fn_client_left(client_left)
server.set_fn_message_received(message_received)
server.run_forever()

つながるnode.jsのコード

const WebSocket = require('ws');
const app = require('express')();
const server = require('http').Server(app);
const uuid = require('uuid/v4');

const wss = new WebSocket.Server({server});
wss.on('connection', socket => {
  console.log('user connected');
  socket.on('message', packet => {
  });
});

server.listen(3000, () => {
  console.log('listening on *:3000');
});

参考資料

github.com

www.npmjs.com

関連記事

9年前の記事

5年前の記事

4年前の記事

3年前の記事

2年前の記事

1年前の記事