non vorrei lavorare

2020年度からの小学校プログラミング教育の必修化を親として迎えるブロガーの書く、子供との日常

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年前の記事